home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1994 February: Tool Chest / Dev.CD Feb 94.toast / Tool Chest / Development Platforms / MCL Related / User Contributions / oodles-of-utils.sea / oodles-of-utils / brutal-utils / QD-fx-u.lisp < prev    next >
MacBinary  |  1992-07-10  |  16.1 KB  |  [TEXT/CCL2]

open in: MacOS 8.1     |     Win98     |     DOS

browse contents    |     view JSON data     |     view as text


This file was processed as: MacBinary (archive/macBinary).

ConfidenceProgramDetectionMatch TypeSupport
1% dexvert MacBinary (archive/macBinary) fallback Supported
1% dexvert Text File (text/txt) fallback Supported
100% file MacBinary II, inited, Fri Jul 10 14:01:38 1992, modified Fri Jul 10 14:01:38 1992, creator Common Lisp 2, type ASCII, 15768 bytes "QD-fx-u.lisp" , at 0x3e18 442 bytes resource default (weak)
99% file data default
74% TrID Macintosh plain text (MacBinary) default
25% TrID MacBinary 2 default (weak)
100% dearkID deark: macbinary default
100% siegfried fmt/1762 MacBinary (II) default
100% lsar MacBinary default


id metadata
keyvalue
macFileType[TEXT]
macFileCreator[CCL2]



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 0c 51 44 2d 66 78 2d | 75 2e 6c 69 73 70 00 00 |..QD-fx-|u.lisp..|
|00000010| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 54 45 58 54 43 43 4c | 32 01 00 00 00 00 00 00 |.TEXTCCL|2.......|
|00000050| 00 00 00 00 00 3d 98 00 | 00 01 ba a6 83 81 02 a6 |.....=..|........|
|00000060| 83 81 02 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 5d dd 00 00 |........|....]...|
|00000080| 28 69 6e 2d 70 61 63 6b | 61 67 65 20 20 3a 6f 6f |(in-pack|age :oo|
|00000090| 75 29 0d 28 6f 6f 75 2d | 70 72 6f 76 69 64 65 20 |u).(oou-|provide |
|000000a0| 3a 51 44 2d 66 78 2d 75 | 29 0d 3b 3b 3b 3b 3b 3b |:QD-fx-u|).;;;;;;|
|000000b0| 3b 3b 3b 3b 3b 3b 3b 3b | 3b 3b 3b 3b 3b 3b 3b 3b |;;;;;;;;|;;;;;;;;|
|000000c0| 3b 3b 3b 3b 3b 3b 3b 3b | 3b 3b 3b 3b 3b 3b 3b 3b |;;;;;;;;|;;;;;;;;|
|000000d0| 3b 3b 3b 3b 3b 3b 3b 3b | 3b 3b 3b 3b 3b 3b 3b 3b |;;;;;;;;|;;;;;;;;|
|000000e0| 3b 3b 3b 3b 3b 3b 3b 3b | 3b 3b 3b 3b 3b 3b 3b 3b |;;;;;;;;|;;;;;;;;|
|000000f0| 0d 3b 3b 20 51 44 2d 66 | 78 2d 75 2e 6c 69 73 70 |.;; QD-f|x-u.lisp|
|00000100| 0d 3b 3b 0d 3b 3b 20 43 | 6f 70 79 72 69 67 68 74 |.;;.;; C|opyright|
|00000110| 20 a9 20 31 39 39 32 20 | 4e 6f 72 74 68 77 65 73 | . 1992 |Northwes|
|00000120| 74 65 72 6e 20 55 6e 69 | 76 65 72 73 69 74 79 20 |tern Uni|versity |
|00000130| 49 6e 73 74 69 74 75 74 | 65 20 66 6f 72 20 74 68 |Institut|e for th|
|00000140| 65 20 4c 65 61 72 6e 69 | 6e 67 20 53 63 69 65 6e |e Learni|ng Scien|
|00000150| 63 65 73 0d 3b 3b 20 41 | 6c 6c 20 52 69 67 68 74 |ces.;; A|ll Right|
|00000160| 73 20 52 65 73 65 72 76 | 65 64 0d 3b 3b 0d 3b 3b |s Reserv|ed.;;.;;|
|00000170| 20 61 75 74 68 6f 72 3a | 20 4d 69 63 68 61 65 6c | author:| Michael|
|00000180| 20 53 2e 20 45 6e 67 62 | 65 72 0d 3b 3b 20 20 20 | S. Engb|er.;; |
|00000190| 20 20 20 20 20 20 52 69 | 63 68 20 4c 79 6e 63 68 | Ri|ch Lynch|
|000001a0| 20 28 6d 75 63 68 20 66 | 61 73 74 65 72 20 76 65 | (much f|aster ve|
|000001b0| 72 73 69 6f 6e 20 6f 66 | 20 77 69 70 65 20 65 66 |rsion of| wipe ef|
|000001c0| 66 65 63 74 73 29 0d 3b | 3b 0d 3b 3b 20 75 74 69 |fects).;|;.;; uti|
|000001d0| 6c 69 74 65 73 20 66 6f | 72 20 76 61 72 69 6f 75 |lites fo|r variou|
|000001e0| 73 20 73 70 65 63 69 61 | 6c 20 65 66 66 65 63 74 |s specia|l effect|
|000001f0| 73 0d 3b 3b 3b 3b 3b 3b | 3b 3b 3b 3b 3b 3b 3b 3b |s.;;;;;;|;;;;;;;;|
|00000200| 3b 3b 3b 3b 3b 3b 3b 3b | 3b 3b 3b 3b 3b 3b 3b 3b |;;;;;;;;|;;;;;;;;|
|00000210| 3b 3b 3b 3b 3b 3b 3b 3b | 3b 3b 3b 3b 3b 3b 3b 3b |;;;;;;;;|;;;;;;;;|
|00000220| 3b 3b 3b 3b 3b 3b 3b 3b | 3b 3b 3b 3b 3b 3b 3b 3b |;;;;;;;;|;;;;;;;;|
|00000230| 3b 3b 3b 3b 3b 3b 3b 3b | 0d 0d 28 6f 6f 75 2d 64 |;;;;;;;;|..(oou-d|
|00000240| 65 70 65 6e 64 65 6e 63 | 69 65 73 20 3a 72 65 63 |ependenc|ies :rec|
|00000250| 6f 72 64 73 2d 75 0d 20 | 20 20 20 20 20 20 20 20 |ords-u. | |
|00000260| 20 20 20 20 20 20 20 20 | 20 3a 6d 61 63 70 74 72 | | :macptr|
|00000270| 2d 75 0d 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |-u. | |
|00000280| 20 20 20 20 20 3a 51 75 | 69 63 6b 44 72 61 77 2d | :Qu|ickDraw-|
|00000290| 75 0d 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |u. | |
|000002a0| 20 20 20 20 3a 47 57 6f | 72 6c 64 2d 76 69 65 77 | :GWo|rld-view|
|000002b0| 0d 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |. | |
|000002c0| 20 20 20 29 0d 0d 28 65 | 78 70 6f 72 74 20 27 28 | )..(e|xport '(|
|000002d0| 64 69 73 73 6f 6c 76 65 | 2d 6f 2d 72 61 6d 61 20 |dissolve|-o-rama |
|000002e0| 77 69 70 65 2d 6f 2d 72 | 61 6d 61 20 69 72 69 73 |wipe-o-r|ama iris|
|000002f0| 2d 6f 66 2d 72 61 6d 61 | 0d 20 20 20 20 20 20 20 |-of-rama|. |
|00000300| 20 20 20 6d 61 70 2d 70 | 61 74 2d 6d 61 73 6b 73 | map-p|at-masks|
|00000310| 20 6d 61 70 2d 69 72 69 | 73 2d 6d 61 73 6b 73 0d | map-iri|s-masks.|
|00000320| 20 20 20 20 20 20 20 20 | 20 20 29 29 0d 0d 3b 3b | | ))..;;|
|00000330| 3b 3b 3b 3b 3b 3b 3b 3b | 3b 3b 3b 3b 3b 3b 3b 3b |;;;;;;;;|;;;;;;;;|
|00000340| 3b 3b 3b 3b 3b 3b 3b 3b | 3b 3b 3b 3b 3b 3b 3b 3b |;;;;;;;;|;;;;;;;;|
|00000350| 3b 3b 3b 3b 3b 3b 3b 3b | 3b 3b 3b 3b 3b 3b 3b 3b |;;;;;;;;|;;;;;;;;|
|00000360| 3b 3b 3b 3b 3b 3b 3b 3b | 3b 3b 3b 3b 3b 3b 3b 3b |;;;;;;;;|;;;;;;;;|
|00000370| 3b 3b 3b 3b 0d 3b 3b 20 | 64 69 73 73 6f 6c 76 65 |;;;;.;; |dissolve|
|00000380| 20 65 66 66 65 63 74 73 | 0d 0d 3b 3b 48 65 78 20 | effects|..;;Hex |
|00000390| 72 65 70 20 6f 66 20 73 | 70 65 63 69 61 6c 20 65 |rep of s|pecial e|
|000003a0| 66 66 65 63 74 20 70 61 | 74 74 65 72 6e 20 6c 69 |ffect pa|ttern li|
|000003b0| 73 74 73 20 28 6c 69 73 | 74 20 6f 66 20 65 69 67 |sts (lis|t of eig|
|000003c0| 68 74 20 38 78 38 20 31 | 62 69 74 20 50 61 74 74 |ht 8x8 1|bit Patt|
|000003d0| 65 72 6e 73 29 0d 3b 3b | 20 2d 20 74 68 65 20 31 |erns).;;| - the 1|
|000003e0| 73 74 20 74 77 6f 20 62 | 79 74 65 73 20 28 34 20 |st two b|ytes (4 |
|000003f0| 68 65 78 20 64 69 67 69 | 74 73 29 20 61 72 65 20 |hex digi|ts) are |
|00000400| 74 68 65 20 6e 75 6d 62 | 65 72 20 6f 66 20 70 61 |the numb|er of pa|
|00000410| 74 74 65 72 6e 73 0d 3b | 3b 20 2d 20 74 68 65 20 |tterns.;|; - the |
|00000420| 72 65 6d 61 6e 69 6e 67 | 20 62 79 74 65 73 20 61 |remaning| bytes a|
|00000430| 72 65 20 72 61 77 20 70 | 61 74 74 65 72 6e 20 64 |re raw p|attern d|
|00000440| 61 74 61 0d 3b 3b 20 2d | 20 74 68 69 73 20 66 6f |ata.;; -| this fo|
|00000450| 72 6d 61 74 20 69 73 20 | 74 68 65 20 73 61 6d 65 |rmat is |the same|
|00000460| 20 61 73 20 50 41 54 23 | 20 72 65 73 6f 75 72 63 | as PAT#| resourc|
|00000470| 65 73 0d 3b 3b 20 2d 20 | 79 6f 75 20 63 61 6e 20 |es.;; - |you can |
|00000480| 75 73 65 20 52 65 73 45 | 64 69 74 20 74 6f 20 63 |use ResE|dit to c|
|00000490| 72 65 61 74 65 2f 76 69 | 65 77 20 74 68 65 6d 20 |reate/vi|ew them |
|000004a0| 62 79 20 63 6f 70 79 69 | 6e 67 2f 70 61 73 74 69 |by copyi|ng/pasti|
|000004b0| 6e 67 20 68 65 78 20 73 | 74 72 69 6e 67 73 0d 3b |ng hex s|trings.;|
|000004c0| 3b 20 20 20 62 65 74 77 | 65 65 6e 20 46 72 65 64 |; betw|een Fred|
|000004d0| 20 61 6e 64 20 52 65 73 | 45 64 69 74 27 73 20 68 | and Res|Edit's h|
|000004e0| 65 78 20 65 64 69 74 6f | 72 20 28 70 72 65 74 74 |ex edito|r (prett|
|000004f0| 79 20 63 6f 6e 76 65 6e | 69 65 6e 74 2c 20 65 68 |y conven|ient, eh|
|00000500| 3f 29 0d 3b 3b 20 20 20 | 20 2d 20 6e 6f 72 6d 61 |?).;; | - norma|
|00000510| 6c 6c 79 20 50 41 54 23 | 27 73 20 6f 70 65 6e 20 |lly PAT#|'s open |
|00000520| 69 6e 74 6f 20 61 20 6e | 69 63 65 20 74 65 6d 70 |into a n|ice temp|
|00000530| 6c 61 74 65 20 65 64 69 | 74 6f 72 0d 3b 3b 20 20 |late edi|tor.;; |
|00000540| 20 20 2d 20 74 6f 20 65 | 64 69 74 20 61 20 50 41 | - to e|dit a PA|
|00000550| 54 23 20 69 6e 20 68 65 | 78 2c 20 6f 70 74 69 6f |T# in he|x, optio|
|00000560| 6e 20 64 6f 75 62 6c 65 | 2d 63 6c 69 63 6b 0d 3b |n double|-click.;|
|00000570| 3b 20 20 20 20 2d 20 66 | 72 6f 6d 20 74 68 65 20 |; - f|rom the |
|00000580| 68 65 78 20 65 64 69 74 | 6f 72 20 79 6f 75 20 63 |hex edit|or you c|
|00000590| 61 6e 20 75 73 65 20 73 | 65 6c 65 63 74 2d 61 6c |an use s|elect-al|
|000005a0| 6c 2c 20 63 6f 70 79 2c | 20 61 6e 64 20 70 61 73 |l, copy,| and pas|
|000005b0| 74 65 0d 28 64 65 66 76 | 61 72 20 2a 51 44 2d 66 |te.(defv|ar *QD-f|
|000005c0| 78 2d 70 61 74 73 2a 0d | 20 20 27 28 0d 20 20 20 |x-pats*.| '(. |
|000005d0| 20 3a 74 72 61 6e 73 70 | 6f 72 74 65 72 20 20 22 | :transp|orter "|
|000005e0| 30 30 30 38 30 34 32 30 | 30 32 31 30 38 30 30 31 |00080420|02108001|
|000005f0| 30 38 34 30 34 30 30 31 | 31 30 30 38 30 34 32 30 |08404001|10080420|
|00000600| 38 30 30 32 31 30 38 30 | 30 38 32 30 30 32 34 30 |80021080|08200240|
|00000610| 30 34 30 31 30 32 30 38 | 34 30 30 31 32 30 30 34 |04010208|40012004|
|00000620| 31 30 38 30 30 31 31 30 | 30 34 38 30 30 38 30 32 |10800110|04800802|
|00000630| 34 30 32 30 32 30 30 32 | 38 30 30 34 34 30 31 30 |40202002|80044010|
|00000640| 30 31 30 38 30 38 34 30 | 30 31 30 32 31 30 38 30 |01080840|01021080|
|00000650| 32 30 30 34 38 30 30 34 | 32 30 34 30 30 31 30 38 |20048004|20400108|
|00000660| 30 32 31 30 22 0d 20 20 | 20 20 3a 73 63 72 65 65 |0210". | :scree|
|00000670| 6e 2d 64 6f 6f 72 20 20 | 22 30 30 30 38 38 30 31 |n-door |"0008801|
|00000680| 30 30 32 34 30 30 38 30 | 31 32 30 30 34 34 30 30 |00240080|12004400|
|00000690| 38 30 31 32 30 30 34 38 | 30 31 30 30 32 32 30 30 |80120048|01002200|
|000006a0| 34 38 30 31 30 30 32 34 | 30 30 38 30 31 31 30 30 |48010024|00801100|
|000006b0| 32 34 30 30 38 30 31 32 | 30 30 34 38 30 30 38 30 |24008012|00480080|
|000006c0| 31 32 30 30 34 38 30 31 | 30 30 32 34 30 30 34 38 |12004801|00240048|
|000006d0| 30 31 30 30 32 34 30 30 | 38 30 31 32 30 30 32 34 |01002400|80120024|
|000006e0| 30 30 38 30 31 32 30 30 | 34 38 30 31 30 30 31 32 |00801200|48010012|
|000006f0| 30 30 34 38 30 31 30 30 | 32 34 30 30 38 22 0d 20 |00480100|24008". |
|00000700| 20 20 20 3a 77 61 79 6e | 65 73 2d 77 6f 72 6c 64 | :wayn|es-world|
|00000710| 20 22 30 30 30 38 30 31 | 38 30 38 30 30 31 30 31 | "000801|80800101|
|00000720| 30 32 30 32 30 31 31 30 | 30 38 30 38 31 30 31 30 |02020110|08081010|
|00000730| 32 30 32 30 31 30 30 38 | 30 34 30 34 30 38 30 38 |20201008|04040808|
|00000740| 31 30 31 30 30 38 38 30 | 34 30 34 30 38 30 38 30 |10100880|40408080|
|00000750| 30 31 30 31 38 30 32 30 | 31 30 31 30 32 30 32 30 |01018020|10102020|
|00000760| 34 30 34 30 32 30 30 34 | 30 32 30 32 30 34 30 34 |40402004|02020404|
|00000770| 30 38 30 38 30 34 34 30 | 32 30 32 30 34 30 34 30 |08080440|20204040|
|00000780| 38 30 38 30 34 30 30 32 | 30 31 30 31 30 32 30 32 |80804002|01010202|
|00000790| 30 34 30 34 30 32 22 0d | 20 20 20 20 3a 76 2d 62 |040402".| :v-b|
|000007a0| 6c 69 6e 64 20 20 20 20 | 20 20 22 30 30 30 38 38 |lind | "00088|
|000007b0| 30 38 30 38 30 38 30 38 | 30 38 30 38 30 38 30 34 |08080808|08080804|
|000007c0| 30 34 30 34 30 34 30 34 | 30 34 30 34 30 34 30 32 |04040404|04040402|
|000007d0| 30 32 30 32 30 32 30 32 | 30 32 30 32 30 32 30 31 |02020202|02020201|
|000007e0| 30 31 30 31 30 31 30 31 | 30 31 30 31 30 31 30 30 |01010101|01010100|
|000007f0| 38 30 38 30 38 30 38 30 | 38 30 38 30 38 30 38 30 |80808080|80808080|
|00000800| 34 30 34 30 34 30 34 30 | 34 30 34 30 34 30 34 30 |40404040|40404040|
|00000810| 32 30 32 30 32 30 32 30 | 32 30 32 30 32 30 32 30 |20202020|20202020|
|00000820| 31 30 31 30 31 30 31 30 | 31 30 31 30 31 30 31 22 |10101010|1010101"|
|00000830| 0d 20 20 20 20 3a 68 2d | 62 6c 69 6e 64 20 20 20 |. :h-|blind |
|00000840| 20 20 20 22 30 30 30 38 | 46 46 30 30 30 30 30 30 | "0008|FF000000|
|00000850| 30 30 30 30 30 30 30 30 | 30 30 46 46 30 30 30 30 |00000000|00FF0000|
|00000860| 30 30 30 30 30 30 30 30 | 30 30 30 30 46 46 30 30 |00000000|0000FF00|
|00000870| 30 30 30 30 30 30 30 30 | 30 30 30 30 30 30 46 46 |00000000|000000FF|
|00000880| 30 30 30 30 30 30 30 30 | 30 30 30 30 30 30 30 30 |00000000|00000000|
|00000890| 46 46 30 30 30 30 30 30 | 30 30 30 30 30 30 30 30 |FF000000|00000000|
|000008a0| 30 30 46 46 30 30 30 30 | 30 30 30 30 30 30 30 30 |00FF0000|00000000|
|000008b0| 30 30 30 30 46 46 30 30 | 30 30 30 30 30 30 30 30 |0000FF00|00000000|
|000008c0| 30 30 30 30 30 30 46 46 | 22 0d 20 20 20 20 29 29 |000000FF|". ))|
|000008d0| 0d 0d 28 64 65 66 75 6e | 20 6d 61 70 2d 70 61 74 |..(defun| map-pat|
|000008e0| 2d 6d 61 73 6b 73 20 28 | 66 6e 20 6d 61 73 6b 2d |-masks (|fn mask-|
|000008f0| 72 65 63 74 20 70 61 74 | 2d 68 65 78 2d 73 74 72 |rect pat|-hex-str|
|00000900| 69 6e 67 29 0d 20 20 28 | 6c 65 74 20 28 28 70 61 |ing). (|let ((pa|
|00000910| 74 2d 63 6f 75 6e 74 20 | 28 70 61 72 73 65 2d 69 |t-count |(parse-i|
|00000920| 6e 74 65 67 65 72 20 70 | 61 74 2d 68 65 78 2d 73 |nteger p|at-hex-s|
|00000930| 74 72 69 6e 67 20 3a 65 | 6e 64 20 34 20 3a 72 61 |tring :e|nd 4 :ra|
|00000940| 64 69 78 20 31 36 29 29 | 29 0d 20 20 20 20 28 25 |dix 16))|). (%|
|00000950| 73 74 61 63 6b 2d 62 6c | 6f 63 6b 20 28 28 70 61 |stack-bl|ock ((pa|
|00000960| 74 2d 6c 69 73 74 5f 70 | 20 28 63 65 69 6c 69 6e |t-list_p| (ceilin|
|00000970| 67 20 28 6c 65 6e 67 74 | 68 20 70 61 74 2d 68 65 |g (lengt|h pat-he|
|00000980| 78 2d 73 74 72 69 6e 67 | 29 20 32 29 29 29 0d 20 |x-string|) 2))). |
|00000990| 20 20 20 20 20 28 25 70 | 75 74 2d 68 65 78 2d 73 | (%p|ut-hex-s|
|000009a0| 74 72 20 70 61 74 2d 6c | 69 73 74 5f 70 20 70 61 |tr pat-l|ist_p pa|
|000009b0| 74 2d 68 65 78 2d 73 74 | 72 69 6e 67 29 0d 20 20 |t-hex-st|ring). |
|000009c0| 20 20 20 20 28 25 69 6e | 63 66 2d 70 74 72 20 70 | (%in|cf-ptr p|
|000009d0| 61 74 2d 6c 69 73 74 5f | 70 20 32 29 0d 20 20 20 |at-list_|p 2). |
|000009e0| 20 20 20 28 6c 65 74 20 | 28 28 67 77 2d 76 69 65 | (let |((gw-vie|
|000009f0| 77 20 28 6d 61 6b 65 2d | 69 6e 73 74 61 6e 63 65 |w (make-|instance|
|00000a00| 20 27 47 57 6f 72 6c 64 | 2d 76 69 65 77 0d 20 20 | 'GWorld|-view. |
|00000a10| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000a20| 20 20 20 20 20 3a 47 57 | 2d 64 65 70 74 68 20 31 | :GW|-depth 1|
|00000a30| 0d 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |. | |
|00000a40| 20 20 20 20 20 20 20 20 | 3a 76 69 65 77 2d 70 6f | |:view-po|
|00000a50| 73 69 74 69 6f 6e 20 28 | 70 72 65 66 20 6d 61 73 |sition (|pref mas|
|00000a60| 6b 2d 72 65 63 74 20 3a | 52 65 63 74 2e 74 6f 70 |k-rect :|Rect.top|
|00000a70| 4c 65 66 74 29 0d 20 20 | 20 20 20 20 20 20 20 20 |Left). | |
|00000a80| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 3a 76 69 | | :vi|
|00000a90| 65 77 2d 73 69 7a 65 20 | 20 20 20 20 28 73 75 62 |ew-size | (sub|
|00000aa0| 74 72 61 63 74 2d 70 6f | 69 6e 74 73 20 28 70 72 |tract-po|ints (pr|
|00000ab0| 65 66 20 6d 61 73 6b 2d | 72 65 63 74 20 3a 52 65 |ef mask-|rect :Re|
|00000ac0| 63 74 2e 62 6f 74 52 69 | 67 68 74 29 0d 20 20 20 |ct.botRi|ght). |
|00000ad0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000ae0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000af0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000b00| 20 20 20 20 28 70 72 65 | 66 20 6d 61 73 6b 2d 72 | (pre|f mask-r|
|00000b10| 65 63 74 20 3a 52 65 63 | 74 2e 74 6f 70 4c 65 66 |ect :Rec|t.topLef|
|00000b20| 74 29 29 29 29 29 0d 20 | 20 20 20 20 20 20 20 28 |t))))). | (|
|00000b30| 47 57 6f 72 6c 64 2d 61 | 6c 6c 6f 63 20 67 77 2d |GWorld-a|lloc gw-|
|00000b40| 76 69 65 77 29 0d 20 20 | 20 20 20 20 20 20 28 75 |view). | (u|
|00000b50| 6e 77 69 6e 64 2d 70 72 | 6f 74 65 63 74 0d 20 20 |nwind-pr|otect. |
|00000b60| 20 20 20 20 20 20 20 20 | 28 64 6f 74 69 6d 65 73 | |(dotimes|
|00000b70| 20 28 69 20 70 61 74 2d | 63 6f 75 6e 74 29 0d 20 | (i pat-|count). |
|00000b80| 20 20 20 20 20 20 20 20 | 20 20 20 28 77 69 74 68 | | (with|
|00000b90| 2d 66 6f 63 75 73 65 64 | 2d 76 69 65 77 20 67 77 |-focused|-view gw|
|00000ba0| 2d 76 69 65 77 0d 20 20 | 20 20 20 20 20 20 20 20 |-view. | |
|00000bb0| 20 20 20 20 28 23 5f 46 | 69 6c 6c 52 65 63 74 20 | (#_F|illRect |
|00000bc0| 6d 61 73 6b 2d 72 65 63 | 74 20 70 61 74 2d 6c 69 |mask-rec|t pat-li|
|00000bd0| 73 74 5f 70 29 29 0d 20 | 20 20 20 20 20 20 20 20 |st_p)). | |
|00000be0| 20 20 20 28 77 69 74 68 | 2d 6c 6f 63 6b 65 64 2d | (with|-locked-|
|00000bf0| 47 57 6f 72 6c 64 2d 76 | 69 65 77 20 67 77 2d 76 |GWorld-v|iew gw-v|
|00000c00| 69 65 77 0d 20 20 20 20 | 20 20 20 20 20 20 20 20 |iew. | |
|00000c10| 20 20 28 66 75 6e 63 61 | 6c 6c 20 66 6e 20 28 76 | (funca|ll fn (v|
|00000c20| 69 65 77 2d 70 6f 72 74 | 42 69 74 73 20 67 77 2d |iew-port|Bits gw-|
|00000c30| 76 69 65 77 29 29 29 0d | 20 20 20 20 20 20 20 20 |view))).| |
|00000c40| 20 20 20 20 28 25 69 6e | 63 66 2d 70 74 72 20 70 | (%in|cf-ptr p|
|00000c50| 61 74 2d 6c 69 73 74 5f | 70 20 28 72 6c 65 6e 67 |at-list_|p (rleng|
|00000c60| 74 68 20 3a 50 61 74 74 | 65 72 6e 29 29 29 0d 20 |th :Patt|ern))). |
|00000c70| 20 20 20 20 20 20 20 20 | 20 28 47 57 6f 72 6c 64 | | (GWorld|
|00000c80| 2d 66 72 65 65 20 67 77 | 2d 76 69 65 77 29 29 29 |-free gw|-view)))|
|00000c90| 29 29 29 0d 0d 0d 28 64 | 65 66 75 6e 20 63 6f 70 |)))...(d|efun cop|
|00000ca0| 79 2d 74 68 72 75 2d 70 | 61 74 73 20 28 73 72 63 |y-thru-p|ats (src|
|00000cb0| 2d 70 6f 72 74 42 69 74 | 73 20 73 72 63 2d 72 65 |-portBit|s src-re|
|00000cc0| 63 74 20 64 65 73 74 2d | 72 65 63 74 20 63 6f 70 |ct dest-|rect cop|
|00000cd0| 79 2d 6d 6f 64 65 20 63 | 6f 70 79 2d 72 67 6e 20 |y-mode c|opy-rgn |
|00000ce0| 64 65 6c 61 79 2d 74 69 | 63 6b 73 20 70 61 74 2d |delay-ti|cks pat-|
|00000cf0| 68 65 78 2d 73 74 72 69 | 6e 67 29 0d 20 20 28 72 |hex-stri|ng). (r|
|00000d00| 6c 65 74 20 28 28 6d 61 | 73 6b 2d 72 65 63 74 20 |let ((ma|sk-rect |
|00000d10| 3a 52 65 63 74 0d 20 20 | 20 20 20 20 20 20 20 20 |:Rect. | |
|00000d20| 20 20 20 20 20 20 20 20 | 20 20 3a 74 6f 70 4c 65 | | :topLe|
|00000d30| 66 74 20 23 40 28 30 20 | 30 29 0d 20 20 20 20 20 |ft #@(0 |0). |
|00000d40| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 3a | | :|
|00000d50| 62 6f 74 52 69 67 68 74 | 20 28 73 75 62 74 72 61 |botRight| (subtra|
|00000d60| 63 74 2d 70 6f 69 6e 74 | 73 20 28 70 72 65 66 20 |ct-point|s (pref |
|00000d70| 64 65 73 74 2d 72 65 63 | 74 20 3a 52 65 63 74 2e |dest-rec|t :Rect.|
|00000d80| 62 6f 74 52 69 67 68 74 | 29 0d 20 20 20 20 20 20 |botRight|). |
|00000d90| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000da0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000db0| 20 20 20 20 20 20 20 20 | 20 28 70 72 65 66 20 64 | | (pref d|
|00000dc0| 65 73 74 2d 72 65 63 74 | 20 3a 52 65 63 74 2e 74 |est-rect| :Rect.t|
|00000dd0| 6f 70 4c 65 66 74 29 29 | 29 29 0d 20 20 20 20 28 |opLeft))|)). (|
|00000de0| 77 69 74 68 2d 63 75 72 | 72 65 6e 74 2d 70 6f 72 |with-cur|rent-por|
|00000df0| 74 42 69 74 73 20 63 75 | 72 2d 70 6f 72 74 42 69 |tBits cu|r-portBi|
|00000e00| 74 73 0d 20 20 20 20 20 | 20 28 66 6c 65 74 20 28 |ts. | (flet (|
|00000e10| 28 6f 66 66 2d 63 6f 70 | 79 20 28 6d 61 73 6b 2d |(off-cop|y (mask-|
|00000e20| 70 6f 72 74 42 69 74 73 | 29 0d 20 20 20 20 20 20 |portBits|). |
|00000e30| 20 20 20 20 20 20 20 20 | 20 28 23 5f 43 6f 70 79 | | (#_Copy|
|00000e40| 44 65 65 70 4d 61 73 6b | 20 73 72 63 2d 70 6f 72 |DeepMask| src-por|
|00000e50| 74 42 69 74 73 20 6d 61 | 73 6b 2d 70 6f 72 74 42 |tBits ma|sk-portB|
|00000e60| 69 74 73 20 63 75 72 2d | 70 6f 72 74 42 69 74 73 |its cur-|portBits|
|00000e70| 20 73 72 63 2d 72 65 63 | 74 20 6d 61 73 6b 2d 72 | src-rec|t mask-r|
|00000e80| 65 63 74 20 64 65 73 74 | 2d 72 65 63 74 20 63 6f |ect dest|-rect co|
|00000e90| 70 79 2d 6d 6f 64 65 20 | 63 6f 70 79 2d 72 67 6e |py-mode |copy-rgn|
|00000ea0| 29 0d 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |). | |
|00000eb0| 20 28 72 6c 65 74 20 28 | 28 66 69 6e 61 6c 54 69 | (rlet (|(finalTi|
|00000ec0| 63 6b 73 5f 70 20 3a 6c | 6f 6e 67 69 6e 74 29 29 |cks_p :l|ongint))|
|00000ed0| 0d 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |. | |
|00000ee0| 20 20 28 23 5f 44 65 6c | 61 79 20 64 65 6c 61 79 | (#_Del|ay delay|
|00000ef0| 2d 74 69 63 6b 73 20 66 | 69 6e 61 6c 54 69 63 6b |-ticks f|inalTick|
|00000f00| 73 5f 70 29 29 29 29 0d | 20 20 20 20 20 20 20 20 |s_p)))).| |
|00000f10| 28 64 65 63 6c 61 72 65 | 20 28 64 79 6e 61 6d 69 |(declare| (dynami|
|00000f20| 63 2d 65 78 74 65 6e 74 | 20 23 27 6f 66 66 2d 63 |c-extent| #'off-c|
|00000f30| 6f 70 79 29 29 0d 20 20 | 20 20 20 20 20 20 28 6d |opy)). | (m|
|00000f40| 61 70 2d 70 61 74 2d 6d | 61 73 6b 73 20 23 27 6f |ap-pat-m|asks #'o|
|00000f50| 66 66 2d 63 6f 70 79 20 | 6d 61 73 6b 2d 72 65 63 |ff-copy |mask-rec|
|00000f60| 74 20 70 61 74 2d 68 65 | 78 2d 73 74 72 69 6e 67 |t pat-he|x-string|
|00000f70| 29 29 29 29 29 0d 0d 0d | 28 64 65 66 75 6e 20 64 |)))))...|(defun d|
|00000f80| 69 73 73 6f 6c 76 65 2d | 6f 2d 72 61 6d 61 20 28 |issolve-|o-rama (|
|00000f90| 73 72 63 2d 70 6f 72 74 | 42 69 74 73 20 73 72 63 |src-port|Bits src|
|00000fa0| 2d 72 65 63 74 20 64 65 | 73 74 2d 72 65 63 74 0d |-rect de|st-rect.|
|00000fb0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000fc0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000fd0| 20 20 20 20 20 26 6b 65 | 79 0d 20 20 20 20 20 20 | &ke|y. |
|00000fe0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000ff0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 28 | | (|
|00001000| 63 6f 70 79 2d 6d 6f 64 | 65 20 20 20 20 20 23 24 |copy-mod|e #$|
|00001010| 73 72 63 43 6f 70 79 29 | 0d 20 20 20 20 20 20 20 |srcCopy)|. |
|00001020| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001030| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 28 63 | | (c|
|00001040| 6f 70 79 2d 72 67 6e 20 | 20 20 20 20 20 28 25 6e |opy-rgn | (%n|
|00001050| 75 6c 6c 2d 70 74 72 29 | 29 0d 20 20 20 20 20 20 |ull-ptr)|). |
|00001060| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001070| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 28 | | (|
|00001080| 64 65 6c 61 79 2d 74 69 | 63 6b 73 20 20 20 30 29 |delay-ti|cks 0)|
|00001090| 0d 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |. | |
|000010a0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000010b0| 20 20 20 20 20 20 28 64 | 69 73 73 6f 6c 76 65 2d | (d|issolve-|
|000010c0| 74 79 70 65 20 3a 74 72 | 61 6e 73 70 6f 72 74 65 |type :tr|ansporte|
|000010d0| 72 29 29 0d 20 20 28 63 | 6f 70 79 2d 74 68 72 75 |r)). (c|opy-thru|
|000010e0| 2d 70 61 74 73 20 73 72 | 63 2d 70 6f 72 74 42 69 |-pats sr|c-portBi|
|000010f0| 74 73 20 73 72 63 2d 72 | 65 63 74 20 64 65 73 74 |ts src-r|ect dest|
|00001100| 2d 72 65 63 74 20 63 6f | 70 79 2d 6d 6f 64 65 20 |-rect co|py-mode |
|00001110| 63 6f 70 79 2d 72 67 6e | 20 64 65 6c 61 79 2d 74 |copy-rgn| delay-t|
|00001120| 69 63 6b 73 0d 20 20 20 | 20 20 20 20 20 20 20 20 |icks. | |
|00001130| 20 20 20 20 20 20 20 28 | 67 65 74 66 20 2a 51 44 | (|getf *QD|
|00001140| 2d 66 78 2d 70 61 74 73 | 2a 20 64 69 73 73 6f 6c |-fx-pats|* dissol|
|00001150| 76 65 2d 74 79 70 65 20 | 28 73 65 63 6f 6e 64 20 |ve-type |(second |
|00001160| 2a 51 44 2d 66 78 2d 70 | 61 74 73 2a 29 29 29 29 |*QD-fx-p|ats*))))|
|00001170| 0d 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |. | |
|00001180| 20 20 20 0d 0d 0d 3b 3b | 3b 3b 3b 3b 3b 3b 3b 3b | ...;;|;;;;;;;;|
|00001190| 3b 3b 3b 3b 3b 3b 3b 3b | 3b 3b 3b 3b 3b 3b 3b 3b |;;;;;;;;|;;;;;;;;|
|000011a0| 3b 3b 3b 3b 3b 3b 3b 3b | 3b 3b 3b 3b 3b 3b 3b 3b |;;;;;;;;|;;;;;;;;|
|000011b0| 3b 3b 3b 3b 3b 3b 3b 3b | 3b 3b 3b 3b 3b 3b 3b 3b |;;;;;;;;|;;;;;;;;|
|000011c0| 3b 3b 3b 3b 3b 3b 3b 3b | 3b 3b 3b 3b 0d 3b 3b 20 |;;;;;;;;|;;;;.;; |
|000011d0| 77 69 70 65 20 65 66 66 | 65 63 74 73 0d 0d 0d 28 |wipe eff|ects...(|
|000011e0| 64 65 66 75 6e 20 63 6f | 70 79 2d 74 68 72 75 2d |defun co|py-thru-|
|000011f0| 77 69 70 65 20 28 73 72 | 63 2d 70 6f 72 74 42 69 |wipe (sr|c-portBi|
|00001200| 74 73 20 73 72 63 2d 72 | 65 63 74 20 64 65 73 74 |ts src-r|ect dest|
|00001210| 2d 72 65 63 74 20 63 6f | 70 79 2d 6d 6f 64 65 20 |-rect co|py-mode |
|00001220| 63 6f 70 79 2d 72 67 6e | 20 64 65 6c 61 79 2d 74 |copy-rgn| delay-t|
|00001230| 69 63 6b 73 20 77 69 70 | 65 2d 64 69 72 65 63 74 |icks wip|e-direct|
|00001240| 69 6f 6e 20 77 69 70 65 | 2d 63 6f 75 6e 74 29 0d |ion wipe|-count).|
|00001250| 20 20 28 6c 65 74 2a 20 | 28 28 73 72 63 2d 73 69 | (let* |((src-si|
|00001260| 7a 65 20 20 20 28 73 75 | 62 74 72 61 63 74 2d 70 |ze (su|btract-p|
|00001270| 6f 69 6e 74 73 20 28 70 | 72 65 66 20 73 72 63 2d |oints (p|ref src-|
|00001280| 72 65 63 74 20 3a 72 65 | 63 74 2e 62 6f 74 72 69 |rect :re|ct.botri|
|00001290| 67 68 74 29 20 20 28 70 | 72 65 66 20 73 72 63 2d |ght) (p|ref src-|
|000012a0| 72 65 63 74 20 3a 72 65 | 63 74 2e 74 6f 70 6c 65 |rect :re|ct.tople|
|000012b0| 66 74 29 29 29 0d 20 20 | 20 20 20 20 20 20 20 28 |ft))). | (|
|000012c0| 64 73 74 2d 73 69 7a 65 | 20 20 20 28 73 75 62 74 |dst-size| (subt|
|000012d0| 72 61 63 74 2d 70 6f 69 | 6e 74 73 20 28 70 72 65 |ract-poi|nts (pre|
|000012e0| 66 20 64 65 73 74 2d 72 | 65 63 74 20 3a 72 65 63 |f dest-r|ect :rec|
|000012f0| 74 2e 62 6f 74 72 69 67 | 68 74 29 20 28 70 72 65 |t.botrig|ht) (pre|
|00001300| 66 20 64 65 73 74 2d 72 | 65 63 74 20 3a 72 65 63 |f dest-r|ect :rec|
|00001310| 74 2e 74 6f 70 6c 65 66 | 74 29 29 29 0d 20 20 20 |t.toplef|t))). |
|00001320| 20 20 20 20 20 20 28 73 | 72 63 2d 77 69 64 74 68 | (s|rc-width|
|00001330| 20 20 28 70 6f 69 6e 74 | 2d 68 20 73 72 63 2d 73 | (point|-h src-s|
|00001340| 69 7a 65 29 29 0d 20 20 | 20 20 20 20 20 20 20 28 |ize)). | (|
|00001350| 73 72 63 2d 68 65 69 67 | 68 74 20 28 70 6f 69 6e |src-heig|ht (poin|
|00001360| 74 2d 76 20 73 72 63 2d | 73 69 7a 65 29 29 0d 20 |t-v src-|size)). |
|00001370| 20 20 20 20 20 20 20 20 | 28 64 73 74 2d 77 69 64 | |(dst-wid|
|00001380| 74 68 20 20 28 70 6f 69 | 6e 74 2d 68 20 64 73 74 |th (poi|nt-h dst|
|00001390| 2d 73 69 7a 65 29 29 0d | 20 20 20 20 20 20 20 20 |-size)).| |
|000013a0| 20 28 64 73 74 2d 68 65 | 69 67 68 74 20 28 70 6f | (dst-he|ight (po|
|000013b0| 69 6e 74 2d 76 20 64 73 | 74 2d 73 69 7a 65 29 29 |int-v ds|t-size))|
|000013c0| 0d 20 20 20 20 20 20 20 | 20 20 28 73 72 63 2d 64 |. | (src-d|
|000013d0| 68 20 30 29 0d 20 20 20 | 20 20 20 20 20 20 28 73 |h 0). | (s|
|000013e0| 72 63 2d 64 76 20 30 29 | 0d 20 20 20 20 20 20 20 |rc-dv 0)|. |
|000013f0| 20 20 28 64 73 74 2d 64 | 68 20 30 29 0d 20 20 20 | (dst-d|h 0). |
|00001400| 20 20 20 20 20 20 28 64 | 73 74 2d 64 76 20 30 29 | (d|st-dv 0)|
|00001410| 29 0d 20 20 20 20 28 64 | 65 63 66 20 77 69 70 65 |). (d|ecf wipe|
|00001420| 2d 63 6f 75 6e 74 29 0d | 20 20 20 20 28 72 6c 65 |-count).| (rle|
|00001430| 74 20 28 28 73 72 63 2d | 77 69 70 65 20 3a 72 65 |t ((src-|wipe :re|
|00001440| 63 74 20 3a 74 6f 70 6c | 65 66 74 20 23 40 28 30 |ct :topl|eft #@(0|
|00001450| 20 30 29 20 3a 62 6f 74 | 72 69 67 68 74 20 73 72 | 0) :bot|right sr|
|00001460| 63 2d 73 69 7a 65 29 0d | 20 20 20 20 20 20 20 20 |c-size).| |
|00001470| 20 20 20 28 64 73 74 2d | 77 69 70 65 20 3a 72 65 | (dst-|wipe :re|
|00001480| 63 74 20 3a 74 6f 70 6c | 65 66 74 20 23 40 28 30 |ct :topl|eft #@(0|
|00001490| 20 30 29 20 3a 62 6f 74 | 72 69 67 68 74 20 64 73 | 0) :bot|right ds|
|000014a0| 74 2d 73 69 7a 65 29 0d | 20 20 20 20 20 20 20 20 |t-size).| |
|000014b0| 20 20 20 28 74 69 63 6b | 2d 63 6f 75 6e 74 20 3a | (tick|-count :|
|000014c0| 6c 6f 6e 67 69 6e 74 29 | 29 0d 20 20 20 20 20 20 |longint)|). |
|000014d0| 28 65 63 61 73 65 20 77 | 69 70 65 2d 64 69 72 65 |(ecase w|ipe-dire|
|000014e0| 63 74 69 6f 6e 0d 20 20 | 20 20 20 20 20 20 28 3a |ction. | (:|
|000014f0| 6c 65 66 74 2d 74 6f 2d | 72 69 67 68 74 0d 20 20 |left-to-|right. |
|00001500| 20 20 20 20 20 20 20 28 | 73 65 74 66 20 73 72 63 | (|setf src|
|00001510| 2d 64 68 20 28 66 6c 6f | 6f 72 20 73 72 63 2d 77 |-dh (flo|or src-w|
|00001520| 69 64 74 68 20 77 69 70 | 65 2d 63 6f 75 6e 74 29 |idth wip|e-count)|
|00001530| 29 0d 20 20 20 20 20 20 | 20 20 20 28 70 73 65 74 |). | (pset|
|00001540| 20 73 72 63 2d 77 69 70 | 65 20 3a 72 65 63 74 2e | src-wip|e :rect.|
|00001550| 72 69 67 68 74 20 73 72 | 63 2d 64 68 29 0d 20 20 |right sr|c-dh). |
|00001560| 20 20 20 20 20 20 20 28 | 73 65 74 66 20 64 73 74 | (|setf dst|
|00001570| 2d 64 68 20 28 66 6c 6f | 6f 72 20 64 73 74 2d 77 |-dh (flo|or dst-w|
|00001580| 69 64 74 68 20 77 69 70 | 65 2d 63 6f 75 6e 74 29 |idth wip|e-count)|
|00001590| 29 0d 20 20 20 20 20 20 | 20 20 20 28 70 73 65 74 |). | (pset|
|000015a0| 20 64 73 74 2d 77 69 70 | 65 20 3a 72 65 63 74 2e | dst-wip|e :rect.|
|000015b0| 72 69 67 68 74 20 64 73 | 74 2d 64 68 29 29 0d 20 |right ds|t-dh)). |
|000015c0| 20 20 20 20 20 20 20 28 | 3a 72 69 67 68 74 2d 74 | (|:right-t|
|000015d0| 6f 2d 6c 65 66 74 0d 20 | 20 20 20 20 20 20 20 20 |o-left. | |
|000015e0| 28 73 65 74 66 20 73 72 | 63 2d 64 68 20 28 2d 20 |(setf sr|c-dh (- |
|000015f0| 28 66 6c 6f 6f 72 20 73 | 72 63 2d 77 69 64 74 68 |(floor s|rc-width|
|00001600| 20 77 69 70 65 2d 63 6f | 75 6e 74 29 29 29 0d 20 | wipe-co|unt))). |
|00001610| 20 20 20 20 20 20 20 20 | 28 70 73 65 74 20 73 72 | |(pset sr|
|00001620| 63 2d 77 69 70 65 20 3a | 72 65 63 74 2e 6c 65 66 |c-wipe :|rect.lef|
|00001630| 74 20 28 2b 20 73 72 63 | 2d 77 69 64 74 68 20 73 |t (+ src|-width s|
|00001640| 72 63 2d 64 68 29 29 0d | 20 20 20 20 20 20 20 20 |rc-dh)).| |
|00001650| 20 28 73 65 74 66 20 64 | 73 74 2d 64 68 20 28 2d | (setf d|st-dh (-|
|00001660| 20 28 66 6c 6f 6f 72 20 | 64 73 74 2d 77 69 64 74 | (floor |dst-widt|
|00001670| 68 20 77 69 70 65 2d 63 | 6f 75 6e 74 29 29 29 0d |h wipe-c|ount))).|
|00001680| 20 20 20 20 20 20 20 20 | 20 28 70 73 65 74 20 64 | | (pset d|
|00001690| 73 74 2d 77 69 70 65 20 | 3a 72 65 63 74 2e 6c 65 |st-wipe |:rect.le|
|000016a0| 66 74 20 28 2b 20 64 73 | 74 2d 77 69 64 74 68 20 |ft (+ ds|t-width |
|000016b0| 64 73 74 2d 64 68 29 29 | 29 0d 20 20 20 20 20 20 |dst-dh))|). |
|000016c0| 20 20 28 3a 74 6f 70 2d | 74 6f 2d 62 6f 74 74 6f | (:top-|to-botto|
|000016d0| 6d 0d 20 20 20 20 20 20 | 20 20 20 28 73 65 74 66 |m. | (setf|
|000016e0| 20 73 72 63 2d 64 76 20 | 28 66 6c 6f 6f 72 20 73 | src-dv |(floor s|
|000016f0| 72 63 2d 68 65 69 67 68 | 74 20 77 69 70 65 2d 63 |rc-heigh|t wipe-c|
|00001700| 6f 75 6e 74 29 29 0d 20 | 20 20 20 20 20 20 20 20 |ount)). | |
|00001710| 28 70 73 65 74 20 73 72 | 63 2d 77 69 70 65 20 3a |(pset sr|c-wipe :|
|00001720| 72 65 63 74 2e 62 6f 74 | 74 6f 6d 20 73 72 63 2d |rect.bot|tom src-|
|00001730| 64 76 29 0d 20 20 20 20 | 20 20 20 20 20 28 73 65 |dv). | (se|
|00001740| 74 66 20 64 73 74 2d 64 | 76 20 28 66 6c 6f 6f 72 |tf dst-d|v (floor|
|00001750| 20 73 72 63 2d 68 65 69 | 67 68 74 20 77 69 70 65 | src-hei|ght wipe|
|00001760| 2d 63 6f 75 6e 74 29 29 | 0d 20 20 20 20 20 20 20 |-count))|. |
|00001770| 20 20 28 70 73 65 74 20 | 64 73 74 2d 77 69 70 65 | (pset |dst-wipe|
|00001780| 20 3a 72 65 63 74 2e 62 | 6f 74 74 6f 6d 20 64 73 | :rect.b|ottom ds|
|00001790| 74 2d 64 76 29 29 0d 20 | 20 20 20 20 20 20 20 28 |t-dv)). | (|
|000017a0| 3a 62 6f 74 74 6f 6d 2d | 74 6f 2d 74 6f 70 20 3b |:bottom-|to-top ;|
|000017b0| 47 6f 64 20 6b 6e 6f 77 | 73 20 77 68 6f 20 77 6f |God know|s who wo|
|000017c0| 75 6c 64 20 77 61 6e 74 | 20 69 74 2e 2e 2e 52 61 |uld want| it...Ra|
|000017d0| 79 6d 69 65 21 0d 20 20 | 20 20 20 20 20 20 20 28 |ymie!. | (|
|000017e0| 73 65 74 66 20 73 72 63 | 2d 64 76 20 28 2d 20 28 |setf src|-dv (- (|
|000017f0| 66 6c 6f 6f 72 20 73 72 | 63 2d 68 65 69 67 68 74 |floor sr|c-height|
|00001800| 20 77 69 70 65 2d 63 6f | 75 6e 74 29 29 29 0d 20 | wipe-co|unt))). |
|00001810| 20 20 20 20 20 20 20 20 | 28 70 73 65 74 20 73 72 | |(pset sr|
|00001820| 63 2d 77 69 70 65 20 3a | 72 65 63 74 2e 74 6f 70 |c-wipe :|rect.top|
|00001830| 20 28 2b 20 73 72 63 2d | 68 65 69 67 68 74 20 73 | (+ src-|height s|
|00001840| 72 63 2d 64 76 29 29 0d | 20 20 20 20 20 20 20 20 |rc-dv)).| |
|00001850| 20 28 73 65 74 66 20 64 | 73 74 2d 64 76 20 28 2d | (setf d|st-dv (-|
|00001860| 20 28 66 6c 6f 6f 72 20 | 64 73 74 2d 68 65 69 67 | (floor |dst-heig|
|00001870| 68 74 20 77 69 70 65 2d | 63 6f 75 6e 74 29 29 29 |ht wipe-|count)))|
|00001880| 0d 20 20 20 20 20 20 20 | 20 20 28 70 73 65 74 20 |. | (pset |
|00001890| 64 73 74 2d 77 69 70 65 | 20 3a 72 65 63 74 2e 74 |dst-wipe| :rect.t|
|000018a0| 6f 70 20 28 2b 20 64 73 | 74 2d 68 65 69 67 68 74 |op (+ ds|t-height|
|000018b0| 20 64 73 74 2d 64 76 29 | 29 29 29 0d 20 20 20 20 | dst-dv)|))). |
|000018c0| 20 20 28 77 69 74 68 2d | 63 75 72 72 65 6e 74 2d | (with-|current-|
|000018d0| 70 6f 72 74 62 69 74 73 | 20 63 75 72 2d 70 6f 72 |portbits| cur-por|
|000018e0| 74 42 69 74 73 0d 20 20 | 20 20 20 20 20 20 28 64 |tBits. | (d|
|000018f0| 6f 74 69 6d 65 73 20 28 | 69 20 77 69 70 65 2d 63 |otimes (|i wipe-c|
|00001900| 6f 75 6e 74 29 0d 20 20 | 20 20 20 20 20 20 20 20 |ount). | |
|00001910| 28 23 5f 43 6f 70 79 42 | 69 74 73 20 73 72 63 2d |(#_CopyB|its src-|
|00001920| 70 6f 72 74 42 69 74 73 | 20 63 75 72 2d 70 6f 72 |portBits| cur-por|
|00001930| 74 42 69 74 73 20 73 72 | 63 2d 77 69 70 65 20 64 |tBits sr|c-wipe d|
|00001940| 73 74 2d 77 69 70 65 20 | 63 6f 70 79 2d 6d 6f 64 |st-wipe |copy-mod|
|00001950| 65 20 63 6f 70 79 2d 72 | 67 6e 29 0d 20 20 20 20 |e copy-r|gn). |
|00001960| 20 20 20 20 20 20 28 23 | 5f 44 65 6c 61 79 20 64 | (#|_Delay d|
|00001970| 65 6c 61 79 2d 74 69 63 | 6b 73 20 74 69 63 6b 2d |elay-tic|ks tick-|
|00001980| 63 6f 75 6e 74 29 0d 20 | 20 20 20 20 20 20 20 20 |count). | |
|00001990| 20 28 69 6e 63 66 20 28 | 70 72 65 66 20 73 72 63 | (incf (|pref src|
|000019a0| 2d 77 69 70 65 20 3a 72 | 65 63 74 2e 6c 65 66 74 |-wipe :r|ect.left|
|000019b0| 29 20 73 72 63 2d 64 68 | 29 0d 20 20 20 20 20 20 |) src-dh|). |
|000019c0| 20 20 20 20 28 69 6e 63 | 66 20 28 70 72 65 66 20 | (inc|f (pref |
|000019d0| 73 72 63 2d 77 69 70 65 | 20 3a 72 65 63 74 2e 74 |src-wipe| :rect.t|
|000019e0| 6f 70 29 20 73 72 63 2d | 64 76 29 0d 20 20 20 20 |op) src-|dv). |
|000019f0| 20 20 20 20 20 20 28 69 | 6e 63 66 20 28 70 72 65 | (i|ncf (pre|
|00001a00| 66 20 73 72 63 2d 77 69 | 70 65 20 3a 72 65 63 74 |f src-wi|pe :rect|
|00001a10| 2e 72 69 67 68 74 29 20 | 73 72 63 2d 64 68 29 0d |.right) |src-dh).|
|00001a20| 20 20 20 20 20 20 20 20 | 20 20 28 69 6e 63 66 20 | | (incf |
|00001a30| 28 70 72 65 66 20 73 72 | 63 2d 77 69 70 65 20 3a |(pref sr|c-wipe :|
|00001a40| 72 65 63 74 2e 62 6f 74 | 74 6f 6d 29 20 73 72 63 |rect.bot|tom) src|
|00001a50| 2d 64 76 29 0d 20 20 20 | 20 20 20 20 20 20 20 28 |-dv). | (|
|00001a60| 69 6e 63 66 20 28 70 72 | 65 66 20 64 73 74 2d 77 |incf (pr|ef dst-w|
|00001a70| 69 70 65 20 3a 72 65 63 | 74 2e 6c 65 66 74 29 20 |ipe :rec|t.left) |
|00001a80| 64 73 74 2d 64 68 29 0d | 20 20 20 20 20 20 20 20 |dst-dh).| |
|00001a90| 20 20 28 69 6e 63 66 20 | 28 70 72 65 66 20 64 73 | (incf |(pref ds|
|00001aa0| 74 2d 77 69 70 65 20 3a | 72 65 63 74 2e 74 6f 70 |t-wipe :|rect.top|
|00001ab0| 29 20 64 73 74 2d 64 76 | 29 0d 20 20 20 20 20 20 |) dst-dv|). |
|00001ac0| 20 20 20 20 28 69 6e 63 | 66 20 28 70 72 65 66 20 | (inc|f (pref |
|00001ad0| 64 73 74 2d 77 69 70 65 | 20 3a 72 65 63 74 2e 72 |dst-wipe| :rect.r|
|00001ae0| 69 67 68 74 29 20 64 73 | 74 2d 64 68 29 0d 20 20 |ight) ds|t-dh). |
|00001af0| 20 20 20 20 20 20 20 20 | 28 69 6e 63 66 20 28 70 | |(incf (p|
|00001b00| 72 65 66 20 64 73 74 2d | 77 69 70 65 20 3a 72 65 |ref dst-|wipe :re|
|00001b10| 63 74 2e 62 6f 74 74 6f | 6d 29 20 64 73 74 2d 64 |ct.botto|m) dst-d|
|00001b20| 76 29 29 0d 20 20 20 20 | 20 20 20 20 28 65 63 61 |v)). | (eca|
|00001b30| 73 65 20 77 69 70 65 2d | 64 69 72 65 63 74 69 6f |se wipe-|directio|
|00001b40| 6e 0d 20 20 20 20 20 20 | 20 20 20 20 28 3a 6c 65 |n. | (:le|
|00001b50| 66 74 2d 74 6f 2d 72 69 | 67 68 74 0d 20 20 20 20 |ft-to-ri|ght. |
|00001b60| 20 20 20 20 20 20 20 28 | 70 73 65 74 20 73 72 63 | (|pset src|
|00001b70| 2d 77 69 70 65 20 3a 72 | 65 63 74 2e 72 69 67 68 |-wipe :r|ect.righ|
|00001b80| 74 20 73 72 63 2d 77 69 | 64 74 68 29 0d 20 20 20 |t src-wi|dth). |
|00001b90| 20 20 20 20 20 20 20 20 | 28 70 73 65 74 20 64 73 | |(pset ds|
|00001ba0| 74 2d 77 69 70 65 20 3a | 72 65 63 74 2e 72 69 67 |t-wipe :|rect.rig|
|00001bb0| 68 74 20 64 73 74 2d 77 | 69 64 74 68 29 29 0d 20 |ht dst-w|idth)). |
|00001bc0| 20 20 20 20 20 20 20 20 | 20 28 3a 72 69 67 68 74 | | (:right|
|00001bd0| 2d 74 6f 2d 6c 65 66 74 | 0d 20 20 20 20 20 20 20 |-to-left|. |
|00001be0| 20 20 20 20 28 70 73 65 | 74 20 73 72 63 2d 77 69 | (pse|t src-wi|
|00001bf0| 70 65 20 3a 72 65 63 74 | 2e 6c 65 66 74 20 30 29 |pe :rect|.left 0)|
|00001c00| 0d 20 20 20 20 20 20 20 | 20 20 20 20 28 70 73 65 |. | (pse|
|00001c10| 74 20 64 73 74 2d 77 69 | 70 65 20 3a 72 65 63 74 |t dst-wi|pe :rect|
|00001c20| 2e 6c 65 66 74 20 30 29 | 29 0d 20 20 20 20 20 20 |.left 0)|). |
|00001c30| 20 20 20 20 28 3a 74 6f | 70 2d 74 6f 2d 62 6f 74 | (:to|p-to-bot|
|00001c40| 74 6f 6d 0d 20 20 20 20 | 20 20 20 20 20 20 20 28 |tom. | (|
|00001c50| 70 73 65 74 20 73 72 63 | 2d 77 69 70 65 20 3a 72 |pset src|-wipe :r|
|00001c60| 65 63 74 2e 62 6f 74 74 | 6f 6d 20 73 72 63 2d 68 |ect.bott|om src-h|
|00001c70| 65 69 67 68 74 29 0d 20 | 20 20 20 20 20 20 20 20 |eight). | |
|00001c80| 20 20 28 70 73 65 74 20 | 64 73 74 2d 77 69 70 65 | (pset |dst-wipe|
|00001c90| 20 3a 72 65 63 74 2e 62 | 6f 74 74 6f 6d 20 64 73 | :rect.b|ottom ds|
|00001ca0| 74 2d 68 65 69 67 68 74 | 29 29 0d 20 20 20 20 20 |t-height|)). |
|00001cb0| 20 20 20 20 20 28 3a 62 | 6f 74 74 6f 6d 2d 74 6f | (:b|ottom-to|
|00001cc0| 2d 74 6f 70 0d 20 20 20 | 20 20 20 20 20 20 20 20 |-top. | |
|00001cd0| 28 70 73 65 74 20 73 72 | 63 2d 77 69 70 65 20 3a |(pset sr|c-wipe :|
|00001ce0| 72 65 63 74 2e 74 6f 70 | 20 30 29 0d 20 20 20 20 |rect.top| 0). |
|00001cf0| 20 20 20 20 20 20 20 28 | 70 73 65 74 20 64 73 74 | (|pset dst|
|00001d00| 2d 77 69 70 65 20 3a 72 | 65 63 74 2e 74 6f 70 20 |-wipe :r|ect.top |
|00001d10| 30 29 29 29 0d 20 20 20 | 20 20 20 20 20 28 23 5f |0))). | (#_|
|00001d20| 43 6f 70 79 42 69 74 73 | 20 73 72 63 2d 70 6f 72 |CopyBits| src-por|
|00001d30| 74 42 69 74 73 20 63 75 | 72 2d 70 6f 72 74 42 69 |tBits cu|r-portBi|
|00001d40| 74 73 20 73 72 63 2d 77 | 69 70 65 20 64 73 74 2d |ts src-w|ipe dst-|
|00001d50| 77 69 70 65 20 63 6f 70 | 79 2d 6d 6f 64 65 20 63 |wipe cop|y-mode c|
|00001d60| 6f 70 79 2d 72 67 6e 29 | 29 29 29 29 0d 0d 28 64 |opy-rgn)|))))..(d|
|00001d70| 65 66 75 6e 20 77 69 70 | 65 2d 6f 2d 72 61 6d 61 |efun wip|e-o-rama|
|00001d80| 20 28 73 72 63 2d 70 6f | 72 74 42 69 74 73 20 73 | (src-po|rtBits s|
|00001d90| 72 63 2d 72 65 63 74 20 | 64 65 73 74 2d 72 65 63 |rc-rect |dest-rec|
|00001da0| 74 0d 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |t. | |
|00001db0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001dc0| 20 20 20 26 6b 65 79 0d | 20 20 20 20 20 20 20 20 | &key.| |
|00001dd0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001de0| 20 20 20 20 20 20 20 20 | 20 28 63 6f 70 79 2d 6d | | (copy-m|
|00001df0| 6f 64 65 20 20 20 20 20 | 20 23 24 73 72 63 43 6f |ode | #$srcCo|
|00001e00| 70 79 29 0d 20 20 20 20 | 20 20 20 20 20 20 20 20 |py). | |
|00001e10| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001e20| 20 20 20 20 20 28 63 6f | 70 79 2d 72 67 6e 20 20 | (co|py-rgn |
|00001e30| 20 20 20 20 20 28 25 6e | 75 6c 6c 2d 70 74 72 29 | (%n|ull-ptr)|
|00001e40| 29 0d 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |). | |
|00001e50| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001e60| 20 20 20 28 64 65 6c 61 | 79 2d 74 69 63 6b 73 20 | (dela|y-ticks |
|00001e70| 20 20 20 30 29 0d 20 20 | 20 20 20 20 20 20 20 20 | 0). | |
|00001e80| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001e90| 20 20 20 20 20 20 20 28 | 77 69 70 65 2d 64 69 72 | (|wipe-dir|
|00001ea0| 65 63 74 69 6f 6e 20 3a | 6c 65 66 74 2d 74 6f 2d |ection :|left-to-|
|00001eb0| 72 69 67 68 74 29 0d 20 | 20 20 20 20 20 20 20 20 |right). | |
|00001ec0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001ed0| 20 20 20 20 20 20 20 20 | 28 77 69 70 65 2d 63 6f | |(wipe-co|
|00001ee0| 75 6e 74 20 20 20 20 20 | 31 30 29 29 0d 20 20 28 |unt |10)). (|
|00001ef0| 63 6f 70 79 2d 74 68 72 | 75 2d 77 69 70 65 20 73 |copy-thr|u-wipe s|
|00001f00| 72 63 2d 70 6f 72 74 42 | 69 74 73 20 73 72 63 2d |rc-portB|its src-|
|00001f10| 72 65 63 74 20 64 65 73 | 74 2d 72 65 63 74 20 63 |rect des|t-rect c|
|00001f20| 6f 70 79 2d 6d 6f 64 65 | 20 63 6f 70 79 2d 72 67 |opy-mode| copy-rg|
|00001f30| 6e 20 64 65 6c 61 79 2d | 74 69 63 6b 73 20 77 69 |n delay-|ticks wi|
|00001f40| 70 65 2d 64 69 72 65 63 | 74 69 6f 6e 20 77 69 70 |pe-direc|tion wip|
|00001f50| 65 2d 63 6f 75 6e 74 29 | 29 0d 0d 0d 3b 3b 3b 3b |e-count)|)...;;;;|
|00001f60| 3b 3b 3b 3b 3b 3b 3b 3b | 3b 3b 3b 3b 3b 3b 3b 3b |;;;;;;;;|;;;;;;;;|
|00001f70| 3b 3b 3b 3b 3b 3b 3b 3b | 3b 3b 3b 3b 3b 3b 3b 3b |;;;;;;;;|;;;;;;;;|
|00001f80| 3b 3b 3b 3b 3b 3b 3b 3b | 3b 3b 3b 3b 3b 3b 3b 3b |;;;;;;;;|;;;;;;;;|
|00001f90| 3b 3b 3b 3b 3b 3b 3b 3b | 3b 3b 3b 3b 3b 3b 3b 3b |;;;;;;;;|;;;;;;;;|
|00001fa0| 3b 3b 0d 3b 3b 20 69 72 | 69 73 20 65 66 66 65 63 |;;.;; ir|is effec|
|00001fb0| 74 73 0d 0d 28 64 65 66 | 75 6e 20 6d 61 70 2d 72 |ts..(def|un map-r|
|00001fc0| 6f 75 6e 64 2d 69 72 69 | 73 2d 6d 61 73 6b 73 20 |ound-iri|s-masks |
|00001fd0| 28 66 6e 20 6d 61 73 6b | 2d 72 65 63 74 20 69 72 |(fn mask|-rect ir|
|00001fe0| 69 73 2d 64 69 72 65 63 | 74 69 6f 6e 20 69 72 69 |is-direc|tion iri|
|00001ff0| 73 2d 63 6f 75 6e 74 29 | 0d 20 20 28 6c 65 74 2a |s-count)|. (let*|
|00002000| 20 28 28 6d 61 73 6b 2d | 77 69 64 74 68 20 20 28 | ((mask-|width (|
|00002010| 2d 20 28 70 72 65 66 20 | 6d 61 73 6b 2d 72 65 63 |- (pref |mask-rec|
|00002020| 74 20 3a 52 65 63 74 2e | 72 69 67 68 74 29 20 20 |t :Rect.|right) |
|00002030| 28 70 72 65 66 20 6d 61 | 73 6b 2d 72 65 63 74 20 |(pref ma|sk-rect |
|00002040| 3a 52 65 63 74 2e 6c 65 | 66 74 29 29 29 0d 20 20 |:Rect.le|ft))). |
|00002050| 20 20 20 20 20 20 20 28 | 6d 61 73 6b 2d 68 65 69 | (|mask-hei|
|00002060| 67 68 74 20 28 2d 20 28 | 70 72 65 66 20 6d 61 73 |ght (- (|pref mas|
|00002070| 6b 2d 72 65 63 74 20 3a | 52 65 63 74 2e 62 6f 74 |k-rect :|Rect.bot|
|00002080| 74 6f 6d 29 20 28 70 72 | 65 66 20 6d 61 73 6b 2d |tom) (pr|ef mask-|
|00002090| 72 65 63 74 20 3a 52 65 | 63 74 2e 74 6f 70 29 29 |rect :Re|ct.top))|
|000020a0| 29 0d 20 20 20 20 20 20 | 20 20 20 28 64 69 61 6d |). | (diam|
|000020b0| 65 74 65 72 20 20 20 20 | 28 63 65 69 6c 69 6e 67 |eter |(ceiling|
|000020c0| 20 28 6d 61 78 20 6d 61 | 73 6b 2d 77 69 64 74 68 | (max ma|sk-width|
|000020d0| 20 6d 61 73 6b 2d 68 65 | 69 67 68 74 29 20 28 31 | mask-he|ight) (1|
|000020e0| 2d 20 69 72 69 73 2d 63 | 6f 75 6e 74 29 29 29 0d |- iris-c|ount))).|
|000020f0| 20 20 20 20 20 20 20 20 | 20 28 72 61 64 69 75 73 | | (radius|
|00002100| 20 20 20 20 20 20 28 63 | 65 69 6c 69 6e 67 20 64 | (c|eiling d|
|00002110| 69 61 6d 65 74 65 72 20 | 32 29 29 0d 20 20 20 20 |iameter |2)). |
|00002120| 20 20 20 20 20 28 64 72 | 20 20 20 20 20 20 20 20 | (dr| |
|00002130| 20 20 28 65 63 61 73 65 | 20 69 72 69 73 2d 64 69 | (ecase| iris-di|
|00002140| 72 65 63 74 69 6f 6e 20 | 28 3a 6f 75 74 77 61 72 |rection |(:outwar|
|00002150| 64 20 28 2d 20 72 61 64 | 69 75 73 29 29 20 28 3a |d (- rad|ius)) (:|
|00002160| 69 6e 77 61 72 64 20 72 | 61 64 69 75 73 29 29 29 |inward r|adius)))|
|00002170| 0d 20 20 20 20 20 20 20 | 20 20 28 72 61 64 69 75 |. | (radiu|
|00002180| 73 2d 61 72 6d 20 28 6d | 61 6b 65 2d 70 6f 69 6e |s-arm (m|ake-poin|
|00002190| 74 20 72 61 64 69 75 73 | 20 72 61 64 69 75 73 29 |t radius| radius)|
|000021a0| 29 0d 20 20 20 20 20 20 | 20 20 20 28 63 65 6e 74 |). | (cent|
|000021b0| 65 72 20 28 6d 61 6b 65 | 2d 70 6f 69 6e 74 20 28 |er (make|-point (|
|000021c0| 72 6f 75 6e 64 20 28 2b | 20 28 70 72 65 66 20 6d |round (+| (pref m|
|000021d0| 61 73 6b 2d 72 65 63 74 | 20 3a 52 65 63 74 2e 72 |ask-rect| :Rect.r|
|000021e0| 69 67 68 74 29 20 20 28 | 70 72 65 66 20 6d 61 73 |ight) (|pref mas|
|000021f0| 6b 2d 72 65 63 74 20 3a | 52 65 63 74 2e 6c 65 66 |k-rect :|Rect.lef|
|00002200| 74 29 29 20 32 29 0d 20 | 20 20 20 20 20 20 20 20 |t)) 2). | |
|00002210| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00002220| 20 20 20 20 28 72 6f 75 | 6e 64 20 28 2b 20 28 70 | (rou|nd (+ (p|
|00002230| 72 65 66 20 6d 61 73 6b | 2d 72 65 63 74 20 3a 52 |ref mask|-rect :R|
|00002240| 65 63 74 2e 62 6f 74 74 | 6f 6d 29 20 28 70 72 65 |ect.bott|om) (pre|
|00002250| 66 20 6d 61 73 6b 2d 72 | 65 63 74 20 3a 52 65 63 |f mask-r|ect :Rec|
|00002260| 74 2e 74 6f 70 29 29 20 | 20 32 29 29 29 29 0d 20 |t.top)) | 2)))). |
|00002270| 20 20 20 28 72 6c 65 74 | 20 28 28 69 72 69 73 2d | (rlet| ((iris-|
|00002280| 72 65 63 74 20 3a 52 65 | 63 74 29 0d 20 20 20 20 |rect :Re|ct). |
|00002290| 20 20 20 20 20 20 20 28 | 6c 61 73 74 2d 69 72 69 | (|last-iri|
|000022a0| 73 20 3a 52 65 63 74 29 | 29 0d 20 20 20 20 20 20 |s :Rect)|). |
|000022b0| 28 65 63 61 73 65 20 69 | 72 69 73 2d 64 69 72 65 |(ecase i|ris-dire|
|000022c0| 63 74 69 6f 6e 0d 20 20 | 20 20 20 20 20 20 28 3a |ction. | (:|
|000022d0| 6f 75 74 77 61 72 64 20 | 28 70 73 65 74 20 69 72 |outward |(pset ir|
|000022e0| 69 73 2d 72 65 63 74 20 | 3a 52 65 63 74 2e 74 6f |is-rect |:Rect.to|
|000022f0| 70 4c 65 66 74 20 20 28 | 73 75 62 74 72 61 63 74 |pLeft (|subtract|
|00002300| 2d 70 6f 69 6e 74 73 20 | 63 65 6e 74 65 72 20 72 |-points |center r|
|00002310| 61 64 69 75 73 2d 61 72 | 6d 29 29 0d 20 20 20 20 |adius-ar|m)). |
|00002320| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 28 70 | | (p|
|00002330| 73 65 74 20 69 72 69 73 | 2d 72 65 63 74 20 3a 52 |set iris|-rect :R|
|00002340| 65 63 74 2e 62 6f 74 52 | 69 67 68 74 20 28 61 64 |ect.botR|ight (ad|
|00002350| 64 2d 70 6f 69 6e 74 73 | 20 20 20 20 20 20 63 65 |d-points| ce|
|00002360| 6e 74 65 72 20 72 61 64 | 69 75 73 2d 61 72 6d 29 |nter rad|ius-arm)|
|00002370| 29 0d 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |). | |
|00002380| 20 20 20 20 28 70 73 65 | 74 20 6c 61 73 74 2d 69 | (pse|t last-i|
|00002390| 72 69 73 20 3a 52 65 63 | 74 2e 74 6f 70 4c 65 66 |ris :Rec|t.topLef|
|000023a0| 74 20 20 23 40 28 2d 31 | 20 2d 31 29 29 0d 20 20 |t #@(-1| -1)). |
|000023b0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000023c0| 28 70 73 65 74 20 6c 61 | 73 74 2d 69 72 69 73 20 |(pset la|st-iris |
|000023d0| 3a 52 65 63 74 2e 62 6f | 74 52 69 67 68 74 20 23 |:Rect.bo|tRight #|
|000023e0| 40 28 2d 32 20 2d 32 29 | 29 29 0d 20 20 20 20 20 |@(-2 -2)|)). |
|000023f0| 20 20 20 28 3a 69 6e 77 | 61 72 64 20 20 28 6c 65 | (:inw|ard (le|
|00002400| 74 20 28 28 6e 72 61 64 | 69 75 73 2d 61 72 6d 20 |t ((nrad|ius-arm |
|00002410| 28 6d 61 6b 65 2d 70 6f | 69 6e 74 20 28 2a 20 69 |(make-po|int (* i|
|00002420| 72 69 73 2d 63 6f 75 6e | 74 20 72 61 64 69 75 73 |ris-coun|t radius|
|00002430| 29 20 28 2a 20 69 72 69 | 73 2d 63 6f 75 6e 74 20 |) (* iri|s-count |
|00002440| 72 61 64 69 75 73 29 29 | 29 29 0d 20 20 20 20 20 |radius))|)). |
|00002450| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 28 | | (|
|00002460| 70 73 65 74 20 69 72 69 | 73 2d 72 65 63 74 20 3a |pset iri|s-rect :|
|00002470| 52 65 63 74 2e 74 6f 70 | 4c 65 66 74 20 28 73 75 |Rect.top|Left (su|
|00002480| 62 74 72 61 63 74 2d 70 | 6f 69 6e 74 73 20 63 65 |btract-p|oints ce|
|00002490| 6e 74 65 72 20 6e 72 61 | 64 69 75 73 2d 61 72 6d |nter nra|dius-arm|
|000024a0| 29 29 0d 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |)). | |
|000024b0| 20 20 20 20 20 20 20 28 | 70 73 65 74 20 69 72 69 | (|pset iri|
|000024c0| 73 2d 72 65 63 74 20 3a | 52 65 63 74 2e 62 6f 74 |s-rect :|Rect.bot|
|000024d0| 52 69 67 68 74 20 28 61 | 64 64 2d 70 6f 69 6e 74 |Right (a|dd-point|
|000024e0| 73 20 63 65 6e 74 65 72 | 20 6e 72 61 64 69 75 73 |s center| nradius|
|000024f0| 2d 61 72 6d 29 29 29 0d | 20 20 20 20 20 20 20 20 |-arm))).| |
|00002500| 20 20 20 20 20 20 20 20 | 20 20 28 70 73 65 74 20 | | (pset |
|00002510| 6c 61 73 74 2d 69 72 69 | 73 20 3a 52 65 63 74 2e |last-iri|s :Rect.|
|00002520| 74 6f 70 4c 65 66 74 20 | 20 23 40 28 2d 31 36 30 |topLeft | #@(-160|
|00002530| 30 30 20 2d 31 36 30 30 | 30 29 29 0d 20 20 20 20 |00 -1600|0)). |
|00002540| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 28 70 | | (p|
|00002550| 73 65 74 20 6c 61 73 74 | 2d 69 72 69 73 20 3a 52 |set last|-iris :R|
|00002560| 65 63 74 2e 62 6f 74 52 | 69 67 68 74 20 23 40 28 |ect.botR|ight #@(|
|00002570| 31 36 30 30 30 20 31 36 | 30 30 30 29 29 29 29 0d |16000 16|000)))).|
|00002580| 20 20 20 20 20 20 28 6c | 65 74 20 28 28 67 77 2d | (l|et ((gw-|
|00002590| 76 69 65 77 20 28 6d 61 | 6b 65 2d 69 6e 73 74 61 |view (ma|ke-insta|
|000025a0| 6e 63 65 20 27 47 57 6f | 72 6c 64 2d 76 69 65 77 |nce 'GWo|rld-view|
|000025b0| 0d 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |. | |
|000025c0| 20 20 20 20 20 20 20 20 | 3a 47 57 2d 64 65 70 74 | |:GW-dept|
|000025d0| 68 20 31 0d 20 20 20 20 | 20 20 20 20 20 20 20 20 |h 1. | |
|000025e0| 20 20 20 20 20 20 20 20 | 20 20 20 3a 76 69 65 77 | | :view|
|000025f0| 2d 70 6f 73 69 74 69 6f | 6e 20 28 70 72 65 66 20 |-positio|n (pref |
|00002600| 6d 61 73 6b 2d 72 65 63 | 74 20 3a 52 65 63 74 2e |mask-rec|t :Rect.|
|00002610| 74 6f 70 4c 65 66 74 29 | 0d 20 20 20 20 20 20 20 |topLeft)|. |
|00002620| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00002630| 3a 76 69 65 77 2d 73 69 | 7a 65 20 20 20 20 20 28 |:view-si|ze (|
|00002640| 73 75 62 74 72 61 63 74 | 2d 70 6f 69 6e 74 73 20 |subtract|-points |
|00002650| 28 70 72 65 66 20 6d 61 | 73 6b 2d 72 65 63 74 20 |(pref ma|sk-rect |
|00002660| 3a 52 65 63 74 2e 62 6f | 74 52 69 67 68 74 29 0d |:Rect.bo|tRight).|
|00002670| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00002680| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00002690| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000026a0| 20 20 20 20 20 20 20 28 | 70 72 65 66 20 6d 61 73 | (|pref mas|
|000026b0| 6b 2d 72 65 63 74 20 3a | 52 65 63 74 2e 74 6f 70 |k-rect :|Rect.top|
|000026c0| 4c 65 66 74 29 29 29 29 | 29 0d 20 20 20 20 20 20 |Left))))|). |
|000026d0| 20 20 28 47 57 6f 72 6c | 64 2d 61 6c 6c 6f 63 20 | (GWorl|d-alloc |
|000026e0| 67 77 2d 76 69 65 77 29 | 0d 20 20 20 20 20 20 20 |gw-view)|. |
|000026f0| 20 28 75 6e 77 69 6e 64 | 2d 70 72 6f 74 65 63 74 | (unwind|-protect|
|00002700| 0d 20 20 20 20 20 20 20 | 20 20 20 28 70 72 6f 67 |. | (prog|
|00002710| 6e 0d 20 20 20 20 20 20 | 20 20 20 20 20 20 28 77 |n. | (w|
|00002720| 69 74 68 2d 66 6f 63 75 | 73 65 64 2d 76 69 65 77 |ith-focu|sed-view|
|00002730| 20 67 77 2d 76 69 65 77 | 0d 20 20 20 20 20 20 20 | gw-view|. |
|00002740| 20 20 20 20 20 20 20 28 | 23 5f 45 72 61 73 65 52 | (|#_EraseR|
|00002750| 65 63 74 20 6d 61 73 6b | 2d 72 65 63 74 29 29 0d |ect mask|-rect)).|
|00002760| 20 20 20 20 20 20 20 20 | 20 20 20 20 28 64 6f 74 | | (dot|
|00002770| 69 6d 65 73 20 28 69 20 | 28 31 2d 20 69 72 69 73 |imes (i |(1- iris|
|00002780| 2d 63 6f 75 6e 74 29 29 | 0d 20 20 20 20 20 20 20 |-count))|. |
|00002790| 20 20 20 20 20 20 20 28 | 77 69 74 68 2d 66 6f 63 | (|with-foc|
|000027a0| 75 73 65 64 2d 76 69 65 | 77 20 67 77 2d 76 69 65 |used-vie|w gw-vie|
|000027b0| 77 0d 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |w. | |
|000027c0| 20 20 28 65 63 61 73 65 | 20 69 72 69 73 2d 64 69 | (ecase| iris-di|
|000027d0| 72 65 63 74 69 6f 6e 0d | 20 20 20 20 20 20 20 20 |rection.| |
|000027e0| 20 20 20 20 20 20 20 20 | 20 20 28 3a 6f 75 74 77 | | (:outw|
|000027f0| 61 72 64 20 28 23 5f 46 | 69 6c 6c 4f 76 61 6c 20 |ard (#_F|illOval |
|00002800| 20 69 72 69 73 2d 72 65 | 63 74 20 2a 62 6c 61 63 | iris-re|ct *blac|
|00002810| 6b 2d 70 61 74 74 65 72 | 6e 2a 29 0d 20 20 20 20 |k-patter|n*). |
|00002820| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00002830| 20 20 20 20 20 20 20 20 | 28 23 5f 45 72 61 73 65 | |(#_Erase|
|00002840| 4f 76 61 6c 20 6c 61 73 | 74 2d 69 72 69 73 29 29 |Oval las|t-iris))|
|00002850| 0d 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |. | |
|00002860| 20 20 20 28 3a 69 6e 77 | 61 72 64 20 20 28 23 5f | (:inw|ard (#_|
|00002870| 45 72 61 73 65 52 65 63 | 74 20 6d 61 73 6b 2d 72 |EraseRec|t mask-r|
|00002880| 65 63 74 29 0d 20 20 20 | 20 20 20 20 20 20 20 20 |ect). | |
|00002890| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000028a0| 20 28 23 5f 46 69 6c 6c | 4f 76 61 6c 20 20 6c 61 | (#_Fill|Oval la|
|000028b0| 73 74 2d 69 72 69 73 20 | 2a 62 6c 61 63 6b 2d 70 |st-iris |*black-p|
|000028c0| 61 74 74 65 72 6e 2a 29 | 0d 20 20 20 20 20 20 20 |attern*)|. |
|000028d0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000028e0| 20 20 20 20 20 28 23 5f | 45 72 61 73 65 4f 76 61 | (#_|EraseOva|
|000028f0| 6c 20 69 72 69 73 2d 72 | 65 63 74 29 29 29 29 0d |l iris-r|ect)))).|
|00002900| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 28 77 | | (w|
|00002910| 69 74 68 2d 6c 6f 63 6b | 65 64 2d 47 57 6f 72 6c |ith-lock|ed-GWorl|
|00002920| 64 2d 76 69 65 77 20 67 | 77 2d 76 69 65 77 0d 20 |d-view g|w-view. |
|00002930| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 28 | | (|
|00002940| 66 75 6e 63 61 6c 6c 20 | 66 6e 20 28 76 69 65 77 |funcall |fn (view|
|00002950| 2d 70 6f 72 74 42 69 74 | 73 20 67 77 2d 76 69 65 |-portBit|s gw-vie|
|00002960| 77 29 29 29 0d 20 20 20 | 20 20 20 20 20 20 20 20 |w))). | |
|00002970| 20 20 20 28 70 73 65 74 | 20 6c 61 73 74 2d 69 72 | (pset| last-ir|
|00002980| 69 73 20 3a 52 65 63 74 | 20 69 72 69 73 2d 72 65 |is :Rect| iris-re|
|00002990| 63 74 29 0d 20 20 20 20 | 20 20 20 20 20 20 20 20 |ct). | |
|000029a0| 20 20 28 23 5f 49 6e 73 | 65 74 52 65 63 74 20 69 | (#_Ins|etRect i|
|000029b0| 72 69 73 2d 72 65 63 74 | 20 64 72 20 64 72 29 29 |ris-rect| dr dr))|
|000029c0| 0d 20 20 20 20 20 20 20 | 20 20 20 20 20 0d 20 20 |. | . |
|000029d0| 20 20 20 20 20 20 20 20 | 20 20 28 77 69 74 68 2d | | (with-|
|000029e0| 66 6f 63 75 73 65 64 2d | 76 69 65 77 20 67 77 2d |focused-|view gw-|
|000029f0| 76 69 65 77 0d 20 20 20 | 20 20 20 20 20 20 20 20 |view. | |
|00002a00| 20 20 20 28 65 63 61 73 | 65 20 69 72 69 73 2d 64 | (ecas|e iris-d|
|00002a10| 69 72 65 63 74 69 6f 6e | 0d 20 20 20 20 20 20 20 |irection|. |
|00002a20| 20 20 20 20 20 20 20 20 | 20 28 3a 6f 75 74 77 61 | | (:outwa|
|00002a30| 72 64 20 20 28 23 5f 46 | 69 6c 6c 4f 76 61 6c 20 |rd (#_F|illOval |
|00002a40| 6c 61 73 74 2d 69 72 69 | 73 20 2a 62 6c 61 63 6b |last-iri|s *black|
|00002a50| 2d 70 61 74 74 65 72 6e | 2a 29 0d 20 20 20 20 20 |-pattern|*). |
|00002a60| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00002a70| 20 20 20 20 20 20 28 23 | 5f 49 6e 76 65 72 74 52 | (#|_InvertR|
|00002a80| 65 63 74 20 6d 61 73 6b | 2d 72 65 63 74 29 29 0d |ect mask|-rect)).|
|00002a90| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00002aa0| 28 3a 69 6e 77 61 72 64 | 20 20 20 28 23 5f 46 69 |(:inward| (#_Fi|
|00002ab0| 6c 6c 4f 76 61 6c 20 6c | 61 73 74 2d 69 72 69 73 |llOval l|ast-iris|
|00002ac0| 20 2a 62 6c 61 63 6b 2d | 70 61 74 74 65 72 6e 2a | *black-|pattern*|
|00002ad0| 29 29 29 29 0d 20 20 20 | 20 20 20 20 20 20 20 20 |)))). | |
|00002ae0| 20 28 77 69 74 68 2d 6c | 6f 63 6b 65 64 2d 47 57 | (with-l|ocked-GW|
|00002af0| 6f 72 6c 64 2d 76 69 65 | 77 20 67 77 2d 76 69 65 |orld-vie|w gw-vie|
|00002b00| 77 0d 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |w. | |
|00002b10| 28 66 75 6e 63 61 6c 6c | 20 66 6e 20 28 76 69 65 |(funcall| fn (vie|
|00002b20| 77 2d 70 6f 72 74 42 69 | 74 73 20 67 77 2d 76 69 |w-portBi|ts gw-vi|
|00002b30| 65 77 29 29 29 29 0d 20 | 20 20 20 20 20 20 20 20 |ew)))). | |
|00002b40| 20 28 47 57 6f 72 6c 64 | 2d 66 72 65 65 20 67 77 | (GWorld|-free gw|
|00002b50| 2d 76 69 65 77 29 29 29 | 29 29 29 0d 0d 28 64 65 |-view)))|)))..(de|
|00002b60| 66 75 6e 20 63 6f 70 79 | 2d 74 68 72 75 2d 72 6f |fun copy|-thru-ro|
|00002b70| 75 6e 64 2d 69 72 69 73 | 20 28 73 72 63 2d 70 6f |und-iris| (src-po|
|00002b80| 72 74 42 69 74 73 20 73 | 72 63 2d 72 65 63 74 20 |rtBits s|rc-rect |
|00002b90| 64 65 73 74 2d 72 65 63 | 74 20 63 6f 70 79 2d 6d |dest-rec|t copy-m|
|00002ba0| 6f 64 65 20 63 6f 70 79 | 2d 72 67 6e 20 64 65 6c |ode copy|-rgn del|
|00002bb0| 61 79 2d 74 69 63 6b 73 | 20 69 72 69 73 2d 64 69 |ay-ticks| iris-di|
|00002bc0| 72 65 63 74 69 6f 6e 20 | 69 72 69 73 2d 63 6f 75 |rection |iris-cou|
|00002bd0| 6e 74 29 0d 20 20 28 72 | 6c 65 74 20 28 28 6d 61 |nt). (r|let ((ma|
|00002be0| 73 6b 2d 72 65 63 74 20 | 3a 52 65 63 74 0d 20 20 |sk-rect |:Rect. |
|00002bf0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00002c00| 20 20 3a 74 6f 70 4c 65 | 66 74 20 23 40 28 30 20 | :topLe|ft #@(0 |
|00002c10| 30 29 0d 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |0). | |
|00002c20| 20 20 20 20 20 20 20 3a | 62 6f 74 52 69 67 68 74 | :|botRight|
|00002c30| 20 28 73 75 62 74 72 61 | 63 74 2d 70 6f 69 6e 74 | (subtra|ct-point|
|00002c40| 73 20 28 70 72 65 66 20 | 64 65 73 74 2d 72 65 63 |s (pref |dest-rec|
|00002c50| 74 20 3a 52 65 63 74 2e | 62 6f 74 52 69 67 68 74 |t :Rect.|botRight|
|00002c60| 29 0d 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |). | |
|00002c70| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00002c80| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00002c90| 20 28 70 72 65 66 20 64 | 65 73 74 2d 72 65 63 74 | (pref d|est-rect|
|00002ca0| 20 3a 52 65 63 74 2e 74 | 6f 70 4c 65 66 74 29 29 | :Rect.t|opLeft))|
|00002cb0| 29 29 0d 20 20 20 20 28 | 77 69 74 68 2d 63 75 72 |)). (|with-cur|
|00002cc0| 72 65 6e 74 2d 70 6f 72 | 74 42 69 74 73 20 63 75 |rent-por|tBits cu|
|00002cd0| 72 2d 70 6f 72 74 42 69 | 74 73 0d 20 20 20 20 20 |r-portBi|ts. |
|00002ce0| 20 28 66 6c 65 74 20 28 | 28 6f 66 66 2d 63 6f 70 | (flet (|(off-cop|
|00002cf0| 79 20 28 6d 61 73 6b 2d | 70 6f 72 74 42 69 74 73 |y (mask-|portBits|
|00002d00| 29 0d 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |). | |
|00002d10| 20 28 23 5f 43 6f 70 79 | 44 65 65 70 4d 61 73 6b | (#_Copy|DeepMask|
|00002d20| 20 73 72 63 2d 70 6f 72 | 74 42 69 74 73 20 6d 61 | src-por|tBits ma|
|00002d30| 73 6b 2d 70 6f 72 74 42 | 69 74 73 20 63 75 72 2d |sk-portB|its cur-|
|00002d40| 70 6f 72 74 42 69 74 73 | 20 73 72 63 2d 72 65 63 |portBits| src-rec|
|00002d50| 74 20 6d 61 73 6b 2d 72 | 65 63 74 20 64 65 73 74 |t mask-r|ect dest|
|00002d60| 2d 72 65 63 74 20 63 6f | 70 79 2d 6d 6f 64 65 20 |-rect co|py-mode |
|00002d70| 63 6f 70 79 2d 72 67 6e | 29 0d 20 20 20 20 20 20 |copy-rgn|). |
|00002d80| 20 20 20 20 20 20 20 20 | 20 28 72 6c 65 74 20 28 | | (rlet (|
|00002d90| 28 66 69 6e 61 6c 54 69 | 63 6b 73 5f 70 20 3a 6c |(finalTi|cks_p :l|
|00002da0| 6f 6e 67 69 6e 74 29 29 | 0d 20 20 20 20 20 20 20 |ongint))|. |
|00002db0| 20 20 20 20 20 20 20 20 | 20 20 28 23 5f 44 65 6c | | (#_Del|
|00002dc0| 61 79 20 64 65 6c 61 79 | 2d 74 69 63 6b 73 20 66 |ay delay|-ticks f|
|00002dd0| 69 6e 61 6c 54 69 63 6b | 73 5f 70 29 29 29 29 0d |inalTick|s_p)))).|
|00002de0| 20 20 20 20 20 20 20 20 | 28 64 65 63 6c 61 72 65 | |(declare|
|00002df0| 20 28 64 79 6e 61 6d 69 | 63 2d 65 78 74 65 6e 74 | (dynami|c-extent|
|00002e00| 20 23 27 6f 66 66 2d 63 | 6f 70 79 29 29 0d 20 20 | #'off-c|opy)). |
|00002e10| 20 20 20 20 20 20 28 6d | 61 70 2d 72 6f 75 6e 64 | (m|ap-round|
|00002e20| 2d 69 72 69 73 2d 6d 61 | 73 6b 73 20 23 27 6f 66 |-iris-ma|sks #'of|
|00002e30| 66 2d 63 6f 70 79 20 6d | 61 73 6b 2d 72 65 63 74 |f-copy m|ask-rect|
|00002e40| 20 69 72 69 73 2d 64 69 | 72 65 63 74 69 6f 6e 20 | iris-di|rection |
|00002e50| 69 72 69 73 2d 63 6f 75 | 6e 74 29 29 29 29 29 0d |iris-cou|nt))))).|
|00002e60| 0d 0d 28 64 65 66 75 6e | 20 6d 61 70 2d 73 71 75 |..(defun| map-squ|
|00002e70| 61 72 65 2d 69 72 69 73 | 2d 6d 61 73 6b 73 20 28 |are-iris|-masks (|
|00002e80| 66 6e 20 6d 61 73 6b 2d | 72 65 63 74 20 69 72 69 |fn mask-|rect iri|
|00002e90| 73 2d 64 69 72 65 63 74 | 69 6f 6e 20 69 72 69 73 |s-direct|ion iris|
|00002ea0| 2d 63 6f 75 6e 74 29 0d | 20 20 28 6c 65 74 2a 20 |-count).| (let* |
|00002eb0| 28 28 6d 61 73 6b 2d 77 | 69 64 74 68 20 20 28 2d |((mask-w|idth (-|
|00002ec0| 20 28 70 72 65 66 20 6d | 61 73 6b 2d 72 65 63 74 | (pref m|ask-rect|
|00002ed0| 20 3a 52 65 63 74 2e 72 | 69 67 68 74 29 20 20 28 | :Rect.r|ight) (|
|00002ee0| 70 72 65 66 20 6d 61 73 | 6b 2d 72 65 63 74 20 3a |pref mas|k-rect :|
|00002ef0| 52 65 63 74 2e 6c 65 66 | 74 29 29 29 0d 20 20 20 |Rect.lef|t))). |
|00002f00| 20 20 20 20 20 20 28 6d | 61 73 6b 2d 68 65 69 67 | (m|ask-heig|
|00002f10| 68 74 20 28 2d 20 28 70 | 72 65 66 20 6d 61 73 6b |ht (- (p|ref mask|
|00002f20| 2d 72 65 63 74 20 3a 52 | 65 63 74 2e 62 6f 74 74 |-rect :R|ect.bott|
|00002f30| 6f 6d 29 20 28 70 72 65 | 66 20 6d 61 73 6b 2d 72 |om) (pre|f mask-r|
|00002f40| 65 63 74 20 3a 52 65 63 | 74 2e 74 6f 70 29 29 29 |ect :Rec|t.top)))|
|00002f50| 0d 20 20 20 20 20 20 20 | 20 20 28 64 69 61 6d 65 |. | (diame|
|00002f60| 74 65 72 20 20 20 20 28 | 63 65 69 6c 69 6e 67 20 |ter (|ceiling |
|00002f70| 28 6d 61 78 20 6d 61 73 | 6b 2d 77 69 64 74 68 20 |(max mas|k-width |
|00002f80| 6d 61 73 6b 2d 68 65 69 | 67 68 74 29 20 69 72 69 |mask-hei|ght) iri|
|00002f90| 73 2d 63 6f 75 6e 74 29 | 29 0d 20 20 20 20 20 20 |s-count)|). |
|00002fa0| 20 20 20 28 72 61 64 69 | 75 73 20 20 20 20 20 20 | (radi|us |
|00002fb0| 28 63 65 69 6c 69 6e 67 | 20 64 69 61 6d 65 74 65 |(ceiling| diamete|
|00002fc0| 72 20 32 29 29 0d 20 20 | 20 20 20 20 20 20 20 28 |r 2)). | (|
|00002fd0| 64 72 20 20 20 20 20 20 | 20 20 20 20 28 65 63 61 |dr | (eca|
|00002fe0| 73 65 20 69 72 69 73 2d | 64 69 72 65 63 74 69 6f |se iris-|directio|
|00002ff0| 6e 20 28 3a 6f 75 74 77 | 61 72 64 20 28 2d 20 72 |n (:outw|ard (- r|
|00003000| 61 64 69 75 73 29 29 20 | 28 3a 69 6e 77 61 72 64 |adius)) |(:inward|
|00003010| 20 72 61 64 69 75 73 29 | 29 29 0d 20 20 20 20 20 | radius)|)). |
|00003020| 20 20 20 20 28 72 61 64 | 69 75 73 2d 61 72 6d 20 | (rad|ius-arm |
|00003030| 28 6d 61 6b 65 2d 70 6f | 69 6e 74 20 72 61 64 69 |(make-po|int radi|
|00003040| 75 73 20 72 61 64 69 75 | 73 29 29 0d 20 20 20 20 |us radiu|s)). |
|00003050| 20 20 20 20 20 28 63 65 | 6e 74 65 72 20 28 6d 61 | (ce|nter (ma|
|00003060| 6b 65 2d 70 6f 69 6e 74 | 20 28 72 6f 75 6e 64 20 |ke-point| (round |
|00003070| 28 2b 20 28 70 72 65 66 | 20 6d 61 73 6b 2d 72 65 |(+ (pref| mask-re|
|00003080| 63 74 20 3a 52 65 63 74 | 2e 72 69 67 68 74 29 20 |ct :Rect|.right) |
|00003090| 20 28 70 72 65 66 20 6d | 61 73 6b 2d 72 65 63 74 | (pref m|ask-rect|
|000030a0| 20 3a 52 65 63 74 2e 6c | 65 66 74 29 29 20 32 29 | :Rect.l|eft)) 2)|
|000030b0| 0d 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |. | |
|000030c0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 28 72 | | (r|
|000030d0| 6f 75 6e 64 20 28 2b 20 | 28 70 72 65 66 20 6d 61 |ound (+ |(pref ma|
|000030e0| 73 6b 2d 72 65 63 74 20 | 3a 52 65 63 74 2e 62 6f |sk-rect |:Rect.bo|
|000030f0| 74 74 6f 6d 29 20 28 70 | 72 65 66 20 6d 61 73 6b |ttom) (p|ref mask|
|00003100| 2d 72 65 63 74 20 3a 52 | 65 63 74 2e 74 6f 70 29 |-rect :R|ect.top)|
|00003110| 29 20 20 32 29 29 29 29 | 0d 20 20 20 20 28 72 6c |) 2))))|. (rl|
|00003120| 65 74 20 28 28 69 72 69 | 73 2d 72 65 63 74 20 3a |et ((iri|s-rect :|
|00003130| 52 65 63 74 29 0d 20 20 | 20 20 20 20 20 20 20 20 |Rect). | |
|00003140| 20 28 6c 61 73 74 2d 69 | 72 69 73 20 3a 52 65 63 | (last-i|ris :Rec|
|00003150| 74 29 29 0d 20 20 20 20 | 20 20 28 65 63 61 73 65 |t)). | (ecase|
|00003160| 20 69 72 69 73 2d 64 69 | 72 65 63 74 69 6f 6e 0d | iris-di|rection.|
|00003170| 20 20 20 20 20 20 20 20 | 28 3a 6f 75 74 77 61 72 | |(:outwar|
|00003180| 64 20 28 70 73 65 74 20 | 69 72 69 73 2d 72 65 63 |d (pset |iris-rec|
|00003190| 74 20 3a 52 65 63 74 2e | 74 6f 70 4c 65 66 74 20 |t :Rect.|topLeft |
|000031a0| 20 28 73 75 62 74 72 61 | 63 74 2d 70 6f 69 6e 74 | (subtra|ct-point|
|000031b0| 73 20 63 65 6e 74 65 72 | 20 72 61 64 69 75 73 2d |s center| radius-|
|000031c0| 61 72 6d 29 29 0d 20 20 | 20 20 20 20 20 20 20 20 |arm)). | |
|000031d0| 20 20 20 20 20 20 20 20 | 28 70 73 65 74 20 69 72 | |(pset ir|
|000031e0| 69 73 2d 72 65 63 74 20 | 3a 52 65 63 74 2e 62 6f |is-rect |:Rect.bo|
|000031f0| 74 52 69 67 68 74 20 28 | 61 64 64 2d 70 6f 69 6e |tRight (|add-poin|
|00003200| 74 73 20 63 65 6e 74 65 | 72 20 72 61 64 69 75 73 |ts cente|r radius|
|00003210| 2d 61 72 6d 29 29 0d 20 | 20 20 20 20 20 20 20 20 |-arm)). | |
|00003220| 20 20 20 20 20 20 20 20 | 20 28 70 73 65 74 20 6c | | (pset l|
|00003230| 61 73 74 2d 69 72 69 73 | 20 3a 52 65 63 74 2e 74 |ast-iris| :Rect.t|
|00003240| 6f 70 4c 65 66 74 20 20 | 23 40 28 2d 31 20 2d 31 |opLeft |#@(-1 -1|
|00003250| 29 29 0d 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |)). | |
|00003260| 20 20 20 20 20 28 70 73 | 65 74 20 6c 61 73 74 2d | (ps|et last-|
|00003270| 69 72 69 73 20 3a 52 65 | 63 74 2e 62 6f 74 52 69 |iris :Re|ct.botRi|
|00003280| 67 68 74 20 23 40 28 2d | 32 20 2d 32 29 29 29 0d |ght #@(-|2 -2))).|
|00003290| 20 20 20 20 20 20 20 20 | 28 3a 69 6e 77 61 72 64 | |(:inward|
|000032a0| 20 20 28 6c 65 74 20 28 | 28 6e 72 61 64 69 75 73 | (let (|(nradius|
|000032b0| 2d 61 72 6d 20 28 6d 61 | 6b 65 2d 70 6f 69 6e 74 |-arm (ma|ke-point|
|000032c0| 20 28 2a 20 69 72 69 73 | 2d 63 6f 75 6e 74 20 72 | (* iris|-count r|
|000032d0| 61 64 69 75 73 29 20 28 | 2a 20 69 72 69 73 2d 63 |adius) (|* iris-c|
|000032e0| 6f 75 6e 74 20 72 61 64 | 69 75 73 29 29 29 29 0d |ount rad|ius)))).|
|000032f0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00003300| 20 20 20 20 28 70 73 65 | 74 20 69 72 69 73 2d 72 | (pse|t iris-r|
|00003310| 65 63 74 20 3a 52 65 63 | 74 2e 74 6f 70 4c 65 66 |ect :Rec|t.topLef|
|00003320| 74 20 28 73 75 62 74 72 | 61 63 74 2d 70 6f 69 6e |t (subtr|act-poin|
|00003330| 74 73 20 63 65 6e 74 65 | 72 20 6e 72 61 64 69 75 |ts cente|r nradiu|
|00003340| 73 2d 61 72 6d 29 29 0d | 20 20 20 20 20 20 20 20 |s-arm)).| |
|00003350| 20 20 20 20 20 20 20 20 | 20 20 20 20 28 70 73 65 | | (pse|
|00003360| 74 20 69 72 69 73 2d 72 | 65 63 74 20 3a 52 65 63 |t iris-r|ect :Rec|
|00003370| 74 2e 62 6f 74 52 69 67 | 68 74 20 28 61 64 64 2d |t.botRig|ht (add-|
|00003380| 70 6f 69 6e 74 73 20 63 | 65 6e 74 65 72 20 6e 72 |points c|enter nr|
|00003390| 61 64 69 75 73 2d 61 72 | 6d 29 29 29 0d 20 20 20 |adius-ar|m))). |
|000033a0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 28 | | (|
|000033b0| 70 73 65 74 20 6c 61 73 | 74 2d 69 72 69 73 20 3a |pset las|t-iris :|
|000033c0| 52 65 63 74 20 6d 61 73 | 6b 2d 72 65 63 74 29 0d |Rect mas|k-rect).|
|000033d0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000033e0| 20 20 28 23 5f 49 6e 73 | 65 74 52 65 63 74 20 69 | (#_Ins|etRect i|
|000033f0| 72 69 73 2d 72 65 63 74 | 20 64 72 20 64 72 29 29 |ris-rect| dr dr))|
|00003400| 29 0d 20 20 20 20 20 20 | 28 6c 65 74 20 28 28 67 |). |(let ((g|
|00003410| 77 2d 76 69 65 77 20 28 | 6d 61 6b 65 2d 69 6e 73 |w-view (|make-ins|
|00003420| 74 61 6e 63 65 20 27 47 | 57 6f 72 6c 64 2d 76 69 |tance 'G|World-vi|
|00003430| 65 77 0d 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |ew. | |
|00003440| 20 20 20 20 20 20 20 20 | 20 20 3a 47 57 2d 64 65 | | :GW-de|
|00003450| 70 74 68 20 31 0d 20 20 | 20 20 20 20 20 20 20 20 |pth 1. | |
|00003460| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 3a 76 69 | | :vi|
|00003470| 65 77 2d 70 6f 73 69 74 | 69 6f 6e 20 28 70 72 65 |ew-posit|ion (pre|
|00003480| 66 20 6d 61 73 6b 2d 72 | 65 63 74 20 3a 52 65 63 |f mask-r|ect :Rec|
|00003490| 74 2e 74 6f 70 4c 65 66 | 74 29 0d 20 20 20 20 20 |t.topLef|t). |
|000034a0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000034b0| 20 20 3a 76 69 65 77 2d | 73 69 7a 65 20 20 20 20 | :view-|size |
|000034c0| 20 28 73 75 62 74 72 61 | 63 74 2d 70 6f 69 6e 74 | (subtra|ct-point|
|000034d0| 73 20 28 70 72 65 66 20 | 6d 61 73 6b 2d 72 65 63 |s (pref |mask-rec|
|000034e0| 74 20 3a 52 65 63 74 2e | 62 6f 74 52 69 67 68 74 |t :Rect.|botRight|
|000034f0| 29 0d 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |). | |
|00003500| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00003510| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00003520| 20 20 20 20 20 20 20 20 | 20 28 70 72 65 66 20 6d | | (pref m|
|00003530| 61 73 6b 2d 72 65 63 74 | 20 3a 52 65 63 74 2e 74 |ask-rect| :Rect.t|
|00003540| 6f 70 4c 65 66 74 29 29 | 29 29 29 0d 20 20 20 20 |opLeft))|))). |
|00003550| 20 20 20 20 28 47 57 6f | 72 6c 64 2d 61 6c 6c 6f | (GWo|rld-allo|
|00003560| 63 20 67 77 2d 76 69 65 | 77 29 0d 20 20 20 20 20 |c gw-vie|w). |
|00003570| 20 20 20 28 75 6e 77 69 | 6e 64 2d 70 72 6f 74 65 | (unwi|nd-prote|
|00003580| 63 74 0d 20 20 20 20 20 | 20 20 20 20 20 28 70 72 |ct. | (pr|
|00003590| 6f 67 6e 0d 20 20 20 20 | 20 20 20 20 20 20 20 20 |ogn. | |
|000035a0| 28 77 69 74 68 2d 66 6f | 63 75 73 65 64 2d 76 69 |(with-fo|cused-vi|
|000035b0| 65 77 20 67 77 2d 76 69 | 65 77 0d 20 20 20 20 20 |ew gw-vi|ew. |
|000035c0| 20 20 20 20 20 20 20 20 | 20 28 23 5f 45 72 61 73 | | (#_Eras|
|000035d0| 65 52 65 63 74 20 6d 61 | 73 6b 2d 72 65 63 74 29 |eRect ma|sk-rect)|
|000035e0| 29 0d 20 20 20 20 20 20 | 20 20 20 20 20 20 28 64 |). | (d|
|000035f0| 6f 74 69 6d 65 73 20 28 | 69 20 69 72 69 73 2d 63 |otimes (|i iris-c|
|00003600| 6f 75 6e 74 29 0d 20 20 | 20 20 20 20 20 20 20 20 |ount). | |
|00003610| 20 20 20 20 28 77 69 74 | 68 2d 66 6f 63 75 73 65 | (wit|h-focuse|
|00003620| 64 2d 76 69 65 77 20 67 | 77 2d 76 69 65 77 0d 20 |d-view g|w-view. |
|00003630| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 28 | | (|
|00003640| 65 63 61 73 65 20 69 72 | 69 73 2d 64 69 72 65 63 |ecase ir|is-direc|
|00003650| 74 69 6f 6e 0d 20 20 20 | 20 20 20 20 20 20 20 20 |tion. | |
|00003660| 20 20 20 20 20 20 20 28 | 3a 6f 75 74 77 61 72 64 | (|:outward|
|00003670| 20 28 23 5f 46 69 6c 6c | 52 65 63 74 20 20 69 72 | (#_Fill|Rect ir|
|00003680| 69 73 2d 72 65 63 74 20 | 2a 62 6c 61 63 6b 2d 70 |is-rect |*black-p|
|00003690| 61 74 74 65 72 6e 2a 29 | 0d 20 20 20 20 20 20 20 |attern*)|. |
|000036a0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000036b0| 20 20 20 20 20 28 23 5f | 45 72 61 73 65 52 65 63 | (#_|EraseRec|
|000036c0| 74 20 6c 61 73 74 2d 69 | 72 69 73 29 29 0d 20 20 |t last-i|ris)). |
|000036d0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000036e0| 28 3a 69 6e 77 61 72 64 | 20 20 28 23 5f 45 72 61 |(:inward| (#_Era|
|000036f0| 73 65 52 65 63 74 20 6d | 61 73 6b 2d 72 65 63 74 |seRect m|ask-rect|
|00003700| 29 0d 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |). | |
|00003710| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 28 23 | | (#|
|00003720| 5f 46 69 6c 6c 52 65 63 | 74 20 20 6c 61 73 74 2d |_FillRec|t last-|
|00003730| 69 72 69 73 20 2a 62 6c | 61 63 6b 2d 70 61 74 74 |iris *bl|ack-patt|
|00003740| 65 72 6e 2a 29 0d 20 20 | 20 20 20 20 20 20 20 20 |ern*). | |
|00003750| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00003760| 20 20 28 23 5f 45 72 61 | 73 65 52 65 63 74 20 69 | (#_Era|seRect i|
|00003770| 72 69 73 2d 72 65 63 74 | 29 29 29 29 0d 20 20 20 |ris-rect|)))). |
|00003780| 20 20 20 20 20 20 20 20 | 20 20 20 28 77 69 74 68 | | (with|
|00003790| 2d 6c 6f 63 6b 65 64 2d | 47 57 6f 72 6c 64 2d 76 |-locked-|GWorld-v|
|000037a0| 69 65 77 20 67 77 2d 76 | 69 65 77 0d 20 20 20 20 |iew gw-v|iew. |
|000037b0| 20 20 20 20 20 20 20 20 | 20 20 20 20 28 66 75 6e | | (fun|
|000037c0| 63 61 6c 6c 20 66 6e 20 | 28 76 69 65 77 2d 70 6f |call fn |(view-po|
|000037d0| 72 74 42 69 74 73 20 67 | 77 2d 76 69 65 77 29 29 |rtBits g|w-view))|
|000037e0| 29 0d 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |). | |
|000037f0| 28 70 73 65 74 20 6c 61 | 73 74 2d 69 72 69 73 20 |(pset la|st-iris |
|00003800| 3a 52 65 63 74 20 69 72 | 69 73 2d 72 65 63 74 29 |:Rect ir|is-rect)|
|00003810| 0d 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 28 |. | (|
|00003820| 23 5f 49 6e 73 65 74 52 | 65 63 74 20 69 72 69 73 |#_InsetR|ect iris|
|00003830| 2d 72 65 63 74 20 64 72 | 20 64 72 29 29 29 0d 20 |-rect dr| dr))). |
|00003840| 20 20 20 20 20 20 20 20 | 20 28 47 57 6f 72 6c 64 | | (GWorld|
|00003850| 2d 66 72 65 65 20 67 77 | 2d 76 69 65 77 29 29 29 |-free gw|-view)))|
|00003860| 29 29 29 0d 0d 0d 28 64 | 65 66 75 6e 20 63 6f 70 |)))...(d|efun cop|
|00003870| 79 2d 74 68 72 75 2d 73 | 71 75 61 72 65 2d 69 72 |y-thru-s|quare-ir|
|00003880| 69 73 20 28 73 72 63 2d | 70 6f 72 74 42 69 74 73 |is (src-|portBits|
|00003890| 20 73 72 63 2d 72 65 63 | 74 20 64 65 73 74 2d 72 | src-rec|t dest-r|
|000038a0| 65 63 74 20 63 6f 70 79 | 2d 6d 6f 64 65 20 63 6f |ect copy|-mode co|
|000038b0| 70 79 2d 72 67 6e 20 64 | 65 6c 61 79 2d 74 69 63 |py-rgn d|elay-tic|
|000038c0| 6b 73 20 69 72 69 73 2d | 64 69 72 65 63 74 69 6f |ks iris-|directio|
|000038d0| 6e 20 69 72 69 73 2d 63 | 6f 75 6e 74 29 0d 20 20 |n iris-c|ount). |
|000038e0| 28 72 6c 65 74 20 28 28 | 6d 61 73 6b 2d 72 65 63 |(rlet ((|mask-rec|
|000038f0| 74 20 3a 52 65 63 74 0d | 20 20 20 20 20 20 20 20 |t :Rect.| |
|00003900| 20 20 20 20 20 20 20 20 | 20 20 20 20 3a 74 6f 70 | | :top|
|00003910| 4c 65 66 74 20 23 40 28 | 30 20 30 29 0d 20 20 20 |Left #@(|0 0). |
|00003920| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00003930| 20 3a 62 6f 74 52 69 67 | 68 74 20 28 73 75 62 74 | :botRig|ht (subt|
|00003940| 72 61 63 74 2d 70 6f 69 | 6e 74 73 20 28 70 72 65 |ract-poi|nts (pre|
|00003950| 66 20 64 65 73 74 2d 72 | 65 63 74 20 3a 52 65 63 |f dest-r|ect :Rec|
|00003960| 74 2e 62 6f 74 52 69 67 | 68 74 29 0d 20 20 20 20 |t.botRig|ht). |
|00003970| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00003980| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00003990| 20 20 20 20 20 20 20 20 | 20 20 20 28 70 72 65 66 | | (pref|
|000039a0| 20 64 65 73 74 2d 72 65 | 63 74 20 3a 52 65 63 74 | dest-re|ct :Rect|
|000039b0| 2e 74 6f 70 4c 65 66 74 | 29 29 29 29 0d 20 20 20 |.topLeft|)))). |
|000039c0| 20 28 77 69 74 68 2d 63 | 75 72 72 65 6e 74 2d 70 | (with-c|urrent-p|
|000039d0| 6f 72 74 42 69 74 73 20 | 63 75 72 2d 70 6f 72 74 |ortBits |cur-port|
|000039e0| 42 69 74 73 0d 20 20 20 | 20 20 20 28 66 6c 65 74 |Bits. | (flet|
|000039f0| 20 28 28 6f 66 66 2d 63 | 6f 70 79 20 28 6d 61 73 | ((off-c|opy (mas|
|00003a00| 6b 2d 70 6f 72 74 42 69 | 74 73 29 0d 20 20 20 20 |k-portBi|ts). |
|00003a10| 20 20 20 20 20 20 20 20 | 20 20 20 28 23 5f 43 6f | | (#_Co|
|00003a20| 70 79 44 65 65 70 4d 61 | 73 6b 20 73 72 63 2d 70 |pyDeepMa|sk src-p|
|00003a30| 6f 72 74 42 69 74 73 20 | 6d 61 73 6b 2d 70 6f 72 |ortBits |mask-por|
|00003a40| 74 42 69 74 73 20 63 75 | 72 2d 70 6f 72 74 42 69 |tBits cu|r-portBi|
|00003a50| 74 73 20 73 72 63 2d 72 | 65 63 74 20 6d 61 73 6b |ts src-r|ect mask|
|00003a60| 2d 72 65 63 74 20 64 65 | 73 74 2d 72 65 63 74 20 |-rect de|st-rect |
|00003a70| 63 6f 70 79 2d 6d 6f 64 | 65 20 63 6f 70 79 2d 72 |copy-mod|e copy-r|
|00003a80| 67 6e 29 0d 20 20 20 20 | 20 20 20 20 20 20 20 20 |gn). | |
|00003a90| 20 20 20 28 72 6c 65 74 | 20 28 28 66 69 6e 61 6c | (rlet| ((final|
|00003aa0| 54 69 63 6b 73 5f 70 20 | 3a 6c 6f 6e 67 69 6e 74 |Ticks_p |:longint|
|00003ab0| 29 29 0d 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |)). | |
|00003ac0| 20 20 20 20 28 23 5f 44 | 65 6c 61 79 20 64 65 6c | (#_D|elay del|
|00003ad0| 61 79 2d 74 69 63 6b 73 | 20 66 69 6e 61 6c 54 69 |ay-ticks| finalTi|
|00003ae0| 63 6b 73 5f 70 29 29 29 | 29 0d 20 20 20 20 20 20 |cks_p)))|). |
|00003af0| 20 20 28 64 65 63 6c 61 | 72 65 20 28 64 79 6e 61 | (decla|re (dyna|
|00003b00| 6d 69 63 2d 65 78 74 65 | 6e 74 20 23 27 6f 66 66 |mic-exte|nt #'off|
|00003b10| 2d 63 6f 70 79 29 29 0d | 20 20 20 20 20 20 20 20 |-copy)).| |
|00003b20| 28 6d 61 70 2d 73 71 75 | 61 72 65 2d 69 72 69 73 |(map-squ|are-iris|
|00003b30| 2d 6d 61 73 6b 73 20 23 | 27 6f 66 66 2d 63 6f 70 |-masks #|'off-cop|
|00003b40| 79 20 6d 61 73 6b 2d 72 | 65 63 74 20 69 72 69 73 |y mask-r|ect iris|
|00003b50| 2d 64 69 72 65 63 74 69 | 6f 6e 20 69 72 69 73 2d |-directi|on iris-|
|00003b60| 63 6f 75 6e 74 29 29 29 | 29 29 0d 0d 0d 28 64 65 |count)))|))...(de|
|00003b70| 66 75 6e 20 69 72 69 73 | 2d 6f 2d 72 61 6d 61 20 |fun iris|-o-rama |
|00003b80| 28 73 72 63 2d 70 6f 72 | 74 42 69 74 73 20 73 72 |(src-por|tBits sr|
|00003b90| 63 2d 72 65 63 74 20 64 | 65 73 74 2d 72 65 63 74 |c-rect d|est-rect|
|00003ba0| 0d 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |. | |
|00003bb0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 26 6b 65 | | &ke|
|00003bc0| 79 0d 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |y. | |
|00003bd0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 28 63 | | (c|
|00003be0| 6f 70 79 2d 6d 6f 64 65 | 20 20 20 20 20 20 23 24 |opy-mode| #$|
|00003bf0| 73 72 63 43 6f 70 79 29 | 0d 20 20 20 20 20 20 20 |srcCopy)|. |
|00003c00| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00003c10| 20 20 20 20 20 28 63 6f | 70 79 2d 72 67 6e 20 20 | (co|py-rgn |
|00003c20| 20 20 20 20 20 28 25 6e | 75 6c 6c 2d 70 74 72 29 | (%n|ull-ptr)|
|00003c30| 29 0d 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |). | |
|00003c40| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 28 64 | | (d|
|00003c50| 65 6c 61 79 2d 74 69 63 | 6b 73 20 20 20 20 30 29 |elay-tic|ks 0)|
|00003c60| 0d 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |. | |
|00003c70| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 28 69 72 | | (ir|
|00003c80| 69 73 2d 64 69 72 65 63 | 74 69 6f 6e 20 3a 6f 75 |is-direc|tion :ou|
|00003c90| 74 77 61 72 64 29 0d 20 | 20 20 20 20 20 20 20 20 |tward). | |
|00003ca0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00003cb0| 20 20 20 28 69 72 69 73 | 2d 63 6f 75 6e 74 20 20 | (iris|-count |
|00003cc0| 20 20 20 38 29 0d 20 20 | 20 20 20 20 20 20 20 20 | 8). | |
|00003cd0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00003ce0| 20 20 28 69 72 69 73 2d | 73 68 61 70 65 20 20 20 | (iris-|shape |
|00003cf0| 20 20 3a 72 6f 75 6e 64 | 29 29 0d 20 20 28 65 63 | :round|)). (ec|
|00003d00| 61 73 65 20 69 72 69 73 | 2d 73 68 61 70 65 0d 20 |ase iris|-shape. |
|00003d10| 20 20 20 28 3a 72 6f 75 | 6e 64 0d 20 20 20 20 20 | (:rou|nd. |
|00003d20| 28 63 6f 70 79 2d 74 68 | 72 75 2d 72 6f 75 6e 64 |(copy-th|ru-round|
|00003d30| 2d 69 72 69 73 20 20 73 | 72 63 2d 70 6f 72 74 42 |-iris s|rc-portB|
|00003d40| 69 74 73 20 73 72 63 2d | 72 65 63 74 20 64 65 73 |its src-|rect des|
|00003d50| 74 2d 72 65 63 74 20 63 | 6f 70 79 2d 6d 6f 64 65 |t-rect c|opy-mode|
|00003d60| 20 63 6f 70 79 2d 72 67 | 6e 20 64 65 6c 61 79 2d | copy-rg|n delay-|
|00003d70| 74 69 63 6b 73 20 69 72 | 69 73 2d 64 69 72 65 63 |ticks ir|is-direc|
|00003d80| 74 69 6f 6e 20 69 72 69 | 73 2d 63 6f 75 6e 74 29 |tion iri|s-count)|
|00003d90| 29 0d 20 20 20 20 28 3a | 73 71 75 61 72 65 0d 20 |). (:|square. |
|00003da0| 20 20 20 20 28 63 6f 70 | 79 2d 74 68 72 75 2d 73 | (cop|y-thru-s|
|00003db0| 71 75 61 72 65 2d 69 72 | 69 73 20 73 72 63 2d 70 |quare-ir|is src-p|
|00003dc0| 6f 72 74 42 69 74 73 20 | 73 72 63 2d 72 65 63 74 |ortBits |src-rect|
|00003dd0| 20 64 65 73 74 2d 72 65 | 63 74 20 63 6f 70 79 2d | dest-re|ct copy-|
|00003de0| 6d 6f 64 65 20 63 6f 70 | 79 2d 72 67 6e 20 64 65 |mode cop|y-rgn de|
|00003df0| 6c 61 79 2d 74 69 63 6b | 73 20 69 72 69 73 2d 64 |lay-tick|s iris-d|
|00003e00| 69 72 65 63 74 69 6f 6e | 20 69 72 69 73 2d 63 6f |irection| iris-co|
|00003e10| 75 6e 74 29 29 29 29 0d | 00 00 00 00 00 00 00 00 |unt)))).|........|
|00003e20| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003e30| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003e40| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003e50| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003e60| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003e70| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003e80| 00 00 01 00 00 00 01 68 | 00 00 00 68 00 00 00 52 |.......h|...h...R|
|00003e90| 00 00 1c a6 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003ea0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003eb0| 0c 51 44 2d 66 78 2d 75 | 2e 6c 69 73 70 7d 02 00 |.QD-fx-u|.lisp}..|
|00003ec0| 00 00 54 45 58 54 43 43 | 4c 32 01 00 00 78 00 00 |..TEXTCC|L2...x..|
|00003ed0| 00 00 54 45 58 54 43 43 | 4c 32 01 00 00 78 00 00 |..TEXTCC|L2...x..|
|00003ee0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003ef0| 00 00 a5 c6 9a 92 00 00 | 3d 98 00 00 01 ba 00 00 |........|=.......|
|00003f00| 00 00 00 00 00 00 00 00 | 00 00 01 55 25 00 00 00 |........|...U%...|
|00003f10| 1c b6 08 4d 72 54 2e 50 | 49 43 54 00 00 00 00 00 |...MrT.P|ICT.....|
|00003f20| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003f30| 00 00 00 00 01 02 25 00 | 00 00 1c ba 0e 44 54 44 |......%.|.....DTD|
|00003f40| 42 2d 64 65 6d 6f 2e 6c | 69 73 70 00 00 00 00 00 |B-demo.l|isp.....|
|00003f50| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 01 32 |........|.......2|
|00003f60| 25 00 00 00 1c c8 0d 2b | 44 65 76 69 63 65 73 2e |%......+|Devices.|
|00003f70| 66 61 73 6c 00 00 00 00 | 00 00 00 00 00 00 00 00 |fasl....|........|
|00003f80| 00 00 00 0a 00 01 00 16 | 0a 00 01 00 00 00 00 00 |........|........|
|00003f90| 00 0a 00 00 07 43 6f 75 | 72 69 65 72 00 00 00 48 |.....Cou|rier...H|
|00003fa0| 00 0a 43 6f 75 72 69 65 | 72 00 00 00 00 00 00 00 |..Courie|r.......|
|00003fb0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003fc0| 00 00 00 06 00 08 00 2e | 01 1e 03 1c 03 da 00 2e |........|........|
|00003fd0| 01 1e 03 1c 03 da 00 00 | 00 00 00 00 1e 6a 00 00 |........|.....j..|
|00003fe0| 1e 6a 00 00 13 e8 01 00 | 00 00 01 00 00 00 01 68 |.j......|.......h|
|00003ff0| 00 00 00 68 00 00 00 52 | 00 c8 a9 70 0a 4a 00 00 |...h...R|...p.J..|
|00004000| 00 1c 00 52 00 01 46 52 | 45 44 00 01 00 12 4d 50 |...R..FR|ED....MP|
|00004010| 53 52 00 00 00 2a 00 02 | ff ff 00 00 00 00 00 00 |SR...*..|........|
|00004020| 00 00 00 03 ff ff 00 00 | 00 0e 00 00 00 00 03 ed |........|........|
|00004030| ff ff 00 00 00 1c 00 cc | b1 64 00 00 00 00 00 00 |........|.d......|
|00004040| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00004050| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00004060| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00004070| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
+--------+-------------------------+-------------------------+--------+--------+